8

我有一个对话框,其中包含一个列表(a 中的一堆TextViews LinearLayoutScrollView。布局如下:

<?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包含按钮作为页脚,它不应该滚动到任何地方,显然不会消失。我试过摆弄布局高度和重量,但无济于事。

4

3 回答 3

23

尝试改变scrollView

<ScrollView
    android:id="@+id/filename_scroll"
    android:layout_width="match_parent"
    android:layout_weight="1"
    android:layout_height="0dp" >
于 2013-04-24T09:05:44.477 回答
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 来引入像表格布局这样的外部组件,并按原样包含您的滚动视图。

希望它有效

于 2013-04-24T09:10:14.843 回答
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();
>       
>            } });
于 2013-04-24T09:46:24.120 回答