Мой список не заполняет родительский

<RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"

    <TextView 
        android:id="@+id/tv_test"
        android:text="Test "
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
    />
    <ListView 
        android:id="@+id/list_test"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_below="@id/tv_test"

  ></ListView>
</RelativeLayout>

И все в ScrollView, я не знаю, почему, но относительный макет, похоже, устанавливает содержимое обертки. И это делает ListView маленьким и не занимает всего места.

Я не знаю, полезно ли это, но вот мой код Java:

public class ShowView extends Activity{
ListView lv;
ArrayAdapter<String> adapter;
String[] myList = {"One", "Two", "Three", "Four", "Five", "Six", "Seven", "Height", "Nine", "Ten"};
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.show);
    lv = (ListView) findViewById(R.id.list_test);
    adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, myList);
    adapter.setDropDownViewResource(android.R.layout.simple_list_item_1);
    lv.setAdapter(adapter);

}
}

Ответ 1

Я думаю, что ScrollView не заполняет весь экран. Используйте это внутри scrollView

android:fillViewport="true"

Ответ 2

Замените RelativeLayout на вертикальный LinearLayout и установите android:layout_weight="1" и android:layout_height="wrap_content" в ListView:

<LinearLayout 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent">

    <TextView 
        android:id="@+id/tv_test"
        android:text="Test "
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <ListView 
        android:id="@+id/list_test"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:layout_below="@id/tv_test" />
</LinearLayout>

Обратитесь к этой статье для получения дополнительной информации о весах макета.

Кроме того, я бы вообще удалил ScrollView. ListView управляет прокруткой, и вы столкнетесь со всеми проблемами, если вставляете их в контейнер, который обрабатывает прокрутку. Если вы хотите прокрутить @is/tv_test вместе с вашим контентом ListView, подумайте о том, чтобы положить его в свой ListView в качестве заголовка. Если вы хотите, чтобы он оставался неподвижным, когда свитки ListView, а затем сохраняйте его вне ListView.