Относительная компоновка с кнопками и LinearLayout, содержимое LL отображается горизонтально, а не вертикально со встроенным ответом - PullRequest
0 голосов
/ 21 июня 2011

У меня ниже RelativeLayout с кнопкой и LinearLayout.Я добавляю TextViews в LinearLayout, но, даже если я установил ориентацию по вертикали в атрибуте LinearLayout, содержимое LinearLayout становится горизонтальным.

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    android:orientation="vertical">

    <Button android:text="Add a server" android:id="@+id/addHost"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:onClick="addHost"/>


    <LinearLayout android:orientation="vertical"
        android:id="@+id/listhosts"
        android:layout_width="fill_parent" 
                android:layout_height="fill_parent"
        android:layout_below="@+id/addHost" android:layout_weight="1">                              
        </LinearLayout>

</RelativeLayout>

И программно я делаю так: -

LinearLayout linearLayout =  (LinearLayout)findViewById(R.id.listhosts);

linearLayout.setOrientation(LinearLayout.VERTICAL);

TextView h = new TextView(this);
h.setText(line);
h.setId(index++);
linearLayout.addView(h);

Любая подсказка, где я ошибаюсь?

Ответ:

Сработало добавление строки ниже:

h.setLayoutParams (новые LayoutParams (LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));

Ответы [ 2 ]

1 голос
/ 22 июня 2011

Несмотря на то, что ориентация LinearLayout установлена ​​в вертикальное положение, я получал горизонтальный рендеринг списка.Причины были в том, что текстовые представления добавляются к линейному расположению динамически, поэтому параметры текстового просмотра необходимо устанавливать программно.Ниже я упомянул, как я достиг этого.

LinearLayout linearLayout =  (LinearLayout)findViewById(R.id.listhosts);

linearLayout.setOrientation(LinearLayout.VERTICAL);

TextView h = new TextView(this);
h.setText(line);
h.setId(index++);
linearLayout.addView(h);
//Adding below line worked for me.
h.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));
0 голосов
/ 21 июня 2011
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
         android:id="@+id/listhosts"
     android:layout_width="fill_parent"                
             android:layout_height="fill_parent"
     >
<TableRow android:baselineAligned="false">
    <Button android:text="Add a server" android:id="@+id/addHost"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:onClick="addHost"/>
</TableRow>

<TableRow android:id="@+id/tableRow1" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
<LinearLayout android:orientation="vertical"
         android:id="@+id/listhosts1"
     android:layout_width="fill_parent"                
             android:layout_height="fill_parent"
     android:layout_weight="1">
      </LinearLayout>                


</TableRow>
</LinearLayout>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...