我有一个对话框,其TextView
内有一个列表(LinearLayout
内的一堆ScrollView
}。布局如下:
<?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" >
<ProgressBar
android:id="@+id/delete_progress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone" />
<ScrollView
android:id="@+id/filename_scroll"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:id="@+id/filename_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
</LinearLayout>
</ScrollView>
<View
android:id="@+id/horisontal_separator"
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="@android:color/darker_gray" />
<LinearLayout
android:id="@+id/button_container"
android:layout_width="match_parent"
android:layout_height="48dp" >
<Button
android:id="@+id/load_button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@string/button_load"
android:gravity="center"
android:layout_weight="1" />
<View
android:layout_width="1dp"
android:layout_height="fill_parent"
android:background="@android:color/darker_gray" />
<Button
android:id="@+id/delete_button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@string/button_delete"
android:gravity="center"
android:layout_weight="1" />
</LinearLayout>
</LinearLayout>
看起来这样,列表中只有几个项目:
但是当屏幕上有更多可以放入的内容(并且实际需要滚动)时,我的按钮会被推到屏幕下方。当一直滚动到底部时,它看起来像这样:
我需要包含按钮的LinearLayout
作为页脚保留,它不应该在任何地方滚动,显然不会消失。我试图摆弄布局高度和重量,但无济于事。
答案 0 :(得分:20)
尝试在scrollView中更改
<ScrollView
android:id="@+id/filename_scroll"
android:layout_width="match_parent"
android:layout_weight="1"
android:layout_height="0dp" >
答案 1 :(得分:0)
我认为你应该明确地提到Scrollview的layout_height
<ScrollView
android:id="@+id/filename_scroll"
android:layout_width="match_parent"
android:layout_height="wrap_content" > ////say android:layout_height="50dp"
<LinearLayout
android:id="@+id/filename_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
</LinearLayout>
</ScrollView>
像那样。另一种选择是,通过明确指定layout_height来引入外部组件,如表格布局,并按原样包含您的滚动视图。
希望它有效
答案 2 :(得分:0)
在xml布局下方使用您要显示的自定义对话框
<FrameLayout android:layout_width="fill_parent" android:layout_height="fill_parent" > <ListView android:id="@+id/gameList" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginBottom="30dip" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="bottom" > <Button android:id="@+id/load" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="Load" /> <Button android:id="@+id/delete" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="Delete" /> </LinearLayout> </FrameLayout>
并从您的类文件中调用它,
> Button getList = (Button) findViewById(R.id.getList);
> getList.setOnClickListener(new View.OnClickListener() {
>
> @Override
> public void onClick(View v) {
> // TODO Auto-generated method stub
> final Dialog listDialog = new Dialog(MainActivity.this);
> listDialog.setTitle("Load a game");
> listDialog.setContentView(R.layout.custom_dialog);
>
> ListView gameList = (ListView) listDialog.findViewById(R.id.gameList);
> gameList.setAdapter(new ArrayAdapter<String> (MainActivity.this,android.R.layout.simple_list_item_1,new String[] {"your array" }));
>
> Button dismiss = (Button) listDialog.findViewById(R.id.load);
> dismiss.setOnClickListener(new View.OnClickListener() {
>
> @Override
> public void onClick(View v) {
> // TODO Auto-generated method stub
> listDialog.dismiss();
> }
> });
>
> listDialog.show();
>
> } });