2013-11-08 5 views
1

У меня есть LinearLayout (вертикальный) и он должен содержать 3 элемента в следующем порядке: textview, listview и кнопка. Список может быть действительно высоким, поэтому, чтобы сохранить все 3 элемента видимыми, я помещаю 3 элемента в один макет. Так что моя структура похожа:вертикальный макет маленький вопрос

linear layout (vertical) 
    linear layout (horizontal) 
    textview 
    linear layout (vertial) * 
    listview 
    relative layout 
    button 

Для того, чтобы заставить его работать я установить фиксированную высоту по отношению к вертикальной LinearLayout, который только содержит ListView (*), но я знаю, что это плохой выбор, потому что на больших устройств там будет быть много пустого пространства. Как я могу это исправить?

благодаря

+0

попробовать с решением я разместил, что позволит решить вашу проблему. –

ответ

0

процента пользователя значения для LinearLayout (*), поэтому они занимают процент от высоты родителя,

и для отдыха, если вы хотите, чтобы занять оставшееся пространство, добавить атрибут: android:layout_weight:1;

+0

ok Я попробую, проблема здесь немного сложная, и даже сложно попробовать с эмулятором, потому что список заполняется после HTTP-вызова на мой веб-сервер, так что, наверное, лучше, если я заполнить список и открыть эмулятор с большим экраном. Спасибо;) – user1638466

+0

Если я правильно помню, listView позаботится о своей собственной прокрутке, поэтому должно быть хорошо, даже если вы придаете ему фиксированную высоту. –

0

Реализовать макет так:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <TextView 
     android:id="@+id/mTextView" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:gravity="center" 
     android:padding="10dp" 
     android:text="Header Text" /> 

    <ListView 
     android:id="@+id/mListView" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_above="@+id/mButton" 
     android:layout_below="@+id/mTextView" > 
    </ListView> 

    <Button 
     android:id="@+id/mButton" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:text="Button1" /> 

</RelativeLayout> 
0
// try this 
<?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="match_parent" 
    android:padding="5dp" 
    android:orientation="vertical"> 

    <LinearLayout 
     android:layout_height="wrap_content" 
     android:layout_width="match_parent"> 

     <TextView 
      android:id="@+id/textview" 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:text="textview"/> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_height="0dp" 
     android:layout_width="match_parent" 
     android:layout_marginTop="5dp" 
     android:layout_weight="1"> 

     <ListView 
      android:layout_height="match_parent" 
      android:layout_width="match_parent" 
      android:cacheColorHint="#00000000" 
      android:divider="@null" 
      android:dividerHeight="0dp" 
      android:smoothScrollbar="true" 
      android:id="@+id/listview"/> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_height="wrap_content" 
     android:layout_width="match_parent" 
     android:layout_marginTop="5dp" 
     android:gravity="center"> 
     <Button 
      android:id="@+id/button" 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:text="button"/> 
    </LinearLayout> 

</LinearLayout> 
Смежные вопросы