为设备高度设置 ListView 高度
Set ListView height for device height
我想列表视图的高度应该根据设备高度而改变。
文本和按钮在顶部,列表视图在中间,媒体播放器按钮在底部。
这应该是一件很容易做的事情,但是看起来却很杂。
我的 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
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
向列表视图添加;
android:layout_height="0dp"
android:layout_weight="10"
并在带按钮的 LinearLayout 中添加;
android:layout_height="0dp"
android:layout_weight="1"
我想列表视图的高度应该根据设备高度而改变。
文本和按钮在顶部,列表视图在中间,媒体播放器按钮在底部。
这应该是一件很容易做的事情,但是看起来却很杂。 我的 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
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
向列表视图添加;
android:layout_height="0dp"
android:layout_weight="10"
并在带按钮的 LinearLayout 中添加;
android:layout_height="0dp"
android:layout_weight="1"