Помогите мне перевести простой Android XML Layout на Java - PullRequest
2 голосов
/ 19 июля 2011

Я пытаюсь перевести этот простой XML-макет для Android в программный эквивалент на Java:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/ll">
   <LinearLayout android:layout_width="wrap_content" android:layout_height="match_parent" android:id="@+id/ll22" android:gravity="left">
       <TextView android:text="TextView" android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
   </LinearLayout>
   <LinearLayout android:layout_height="match_parent" android:id="@+id/ll3" android:layout_width="match_parent" android:gravity="right">
       <Button android:id="@+id/button1" android:text="Button" android:layout_height="wrap_content" android:layout_width="wrap_content"></Button>
       <Button android:id="@+id/button2" android:text="Button" android:layout_height="wrap_content" android:layout_width="wrap_content"></Button>
   </LinearLayout>
</LinearLayout>

Это то, что я имею до сих пор в Java:

LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.HORIZONTAL);

LinearLayout ll2 = new LinearLayout(this);
ll2.setGravity(Gravity.LEFT);

LinearLayout ll3 = new LinearLayout(this);
ll3.setGravity(Gravity.RIGHT);

TextView text = new TextView(this);
text.setText("Text");
ll2.addView(text);

Button button1 = new Button(this);
button1.setText("Button");
ll3.addView(button1);

Button button2 = new Button(this);
button2.setText("Button");
ll3.addView(button2);

ll.addView(ll2);
ll.addView(ll3);

setContentView(ll);

Проблема с моей Java состоит в том, что результат выстроен не так хорошо, как XML. Все сжимается вместе, а не на противоположных сторонах экрана. Я полагаю, что это потому, что я не могу понять, как установить ширину ll3 в "match_parent".

Наконец, пожалуйста, не предлагайте мне просто использовать XML-файл в моей Java, такой как ll = (LinearLayout) findViewById (R.layout.main.ll). Мне известен этот вариант, но я пытаюсь сделать это полностью программно в Java, чтобы лучше понять Java-часть SDK.

Спасибо.

1 Ответ

2 голосов
/ 19 июля 2011

Попробуйте это:

ll3.setLayoutParams(new LinearLayout.LayoutParams(
            LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT
    ));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...