/ / Android nastavenie okrajov tlačidiel programovo s viacerými tlačidlami nefunguje - android, tlačidlo, okraj

Nastavenie okrajov tlačidiel Android programovo pomocou viacerých tlačidiel nefunguje - android, tlačidlo, okraj

Momentálne sa snažím implementovať aplikáciu pre Androidktorý má 6 tlačidiel pre jednu aktivitu. Zatiaľ čo sa pokúšam programovo nastaviť okraje tlačidiel, keď je iba jedno tlačidlo, bez problémov to nastaví. Avšak keď to skúsim s viacerými tlačidlami, všetky sú nastavené v ľavom hornom rohu aplikácie. Neviem, čo mám robiť, a preto bude každá pomoc uctievaná. Tu sú kódy rozloženia a činnosti:

private void initializeUIElements()
{

Display display = getWindowManager().getDefaultDisplay();

int width = display.getWidth();
int height = display.getHeight();

LayoutParams params = new LayoutParams(
LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT
);
playButton = (Button) (findViewById(R.id.play_button));

final ViewGroup.MarginLayoutParams lpt =(MarginLayoutParams)playButton.getLayoutParams();
lpt.setMargins((int)(width/2.4),(height/4),(int)(width/2.4),(height/4));
playButton.setLayoutParams(lpt);

facebookButton = (Button) (findViewById(R.id.facebook_button));
lpt.setMargins(100,400,380,400);
facebookButton.setLayoutParams(lpt);

t = (TextView) (findViewById(R.id.textView1));
t.setText(width + " " + height);



twitterButton = (Button) (findViewById(R.id.twitter_button));
topTenButton = (Button) (findViewById(R.id.top_ten_button));
yayinAkisiButton = (Button) (findViewById(R.id.yayin_akisi_button));
son5Button = (Button) (findViewById(R.id.son_5_button));


playButton.setOnClickListener(this);
facebookButton.setOnClickListener(this);
twitterButton.setOnClickListener(this);
topTenButton.setOnClickListener(this);
yayinAkisiButton.setOnClickListener(this);
son5Button.setOnClickListener(this);

}

Tu sú kódy rozloženia XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/rl1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="left"
android:orientation="vertical"
tools:context=".MainActivity" >

<ImageView
android:id="@+id/main_bg"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="fitXY"
android:src="@drawable/bg" />

<Button
android:id="@+id/facebook_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Facebook"
android:onClick="true"/>


<Button
android:id="@+id/son_5_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Son 5" />

<Button
android:id="@+id/yayin_akisi_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Yayın Akışı" />

<Button
android:id="@+id/top_ten_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TopTen" />

<Button
android:id="@+id/twitter_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Twitter" />


<Button
android:id="@+id/play_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Play" />

<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="193dp"
android:text="TextView" />

</RelativeLayout>

odpovede:

0 pre odpoveď č. 1

Kľúčové informácie, ktoré chýbajú, spočívajú v tom, že kvôli tomu, že používate režim RelativeLayout, musíte určiť pravidlá pre zobrazenie každého tlačidla vzhľadom na druhého.

Upravte svoj XML takto:

<Button
android:id="@+id/facebook_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Facebook"
android:onClick="true"
android:layout_below="@id/main_bg"   (this is what you are missing)
/>

RelativeLayouts majú všetky možnosti. Viac informácií nájdete na tejto stránke: http://developer.android.com/guide/topics/ui/layout/relative.html

Je pravdepodobné, že môžete uprednostniť iné rozloženie,ako napríklad LinearLayout vo vertikálnom režime. Za predpokladu, že používate Eclipse, hrajte si s užívateľským rozhraním a nájdete spôsob, ako previesť svoju hodnotu RelativeLayout (ktorá je predvolená) na LinearLayout.