设置设备高度的ListView高度

时间:2015-01-18 11:23:25

标签: android listview android-listview height

我希望listview的高度应该随设备高度而变化。

文本和按钮位于顶部,listview位于中央,媒体播放器按钮位于底部。

这应该是一件非常容易的事情,但它看起来很复杂。 我的layout.xml:

<?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:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin" >
    <EditText
        android:id="@+id/searchText2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="text" />
    <Button
        android:id="@+id/searchButton2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/search" />

    <ListView
        android:id="@+id/searchResult"
        android:layout_width="fill_parent"
        android:layout_height="306dp" >

    </ListView>
    <LinearLayout
        android:id="@+id/timeLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:orientation="horizontal" >
        <TextView
            android:id="@+id/time"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="@string/init_time"
            android:textSize="12sp" />
    </LinearLayout>
    <LinearLayout
        android:id="@+id/playerLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center_horizontal"
        android:orientation="horizontal" >
        <ImageButton
            android:id="@+id/prevButton"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:contentDescription="@string/prev"
            android:src="@drawable/ic_media_previous" />
        <ImageButton
            android:id="@+id/playButton"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:contentDescription="@string/play"
            android:src="@drawable/ic_media_play" />
        <ImageButton
            android:id="@+id/pauseButton"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:contentDescription="@string/pause"
            android:src="@drawable/ic_media_pause" />
        <ImageButton
            android:id="@+id/stopButton"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:contentDescription="@string/stop"
            android:src="@drawable/ic_media_stop" />
        <ImageButton
            android:id="@+id/nextButton"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:contentDescription="@string/next"
            android:src="@drawable/ic_media_next" />
    </LinearLayout>
</LinearLayout>

我正在使用此代码:

    searchText2 = (EditText) view.findViewById(R.id.searchText2);
    searchButton2 = (Button) view.findViewById(R.id.searchButton2);
    searchResult = (ListView) view.findViewById(R.id.searchResult);
    playerLayout = (LinearLayout) view.findViewById(R.id.playerLayout);
    timeLayout = (LinearLayout) view.findViewById(R.id.timeLayout);
    // hide player now
    playerLayout.setVisibility(View.GONE);
    timeLayout.setVisibility(View.GONE);
    searchResult.setAdapter(new ArrayAdapter<String>(view.getContext(), R.layout.resulttext, new ArrayList<String>()));

listview是他们的中心。如何更改listview的高度以适应设备的高度。谢谢

编辑:像这样修复;

<ListView
    android:id="@+id/searchResult"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="10" >

<LinearLayout
    android:id="@+id/playerLayout"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:gravity="center_horizontal"
    android:orientation="horizontal" >

感谢@MatusSeidl

1 个答案:

答案 0 :(得分:0)

to listView add;

android:layout_height="0dp" 
android:layout_weight="10"

和带按钮的LinearLayout,添加;

android:layout_height="0dp" 
android:layout_weight="1"