0

我正在我的 android 应用程序中制作一个设置屏幕。这个列表当然有一组预定义的选项(通知/颜色/注销/等)。所以我决定在 xml 中静态创建列表。因为如果列表的内容比我嵌套LinearLayout在 a中的屏幕多,那么列表应该同样很好地显示ScrollView(不能使用 a ListView,因为我想静态定义其中的项目)。

现在可以使用以下代码正常工作:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >

    <LinearLayout 
        android:orientation="vertical" 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@color/black" >

        <TextView 
            android:layout_width="fill_parent"
            android:layout_height="80dp"
            android:paddingTop="30dp"
            android:text="@string/account_notifications" 
            android:background="@color/white"
            android:layout_marginBottom="1dp"/>
        <TextView 
            android:layout_width="fill_parent"
            android:layout_height="80dp"
            android:text="@string/colors" 
            android:background="@color/white"
            android:layout_marginBottom="1dp" />

        <TextView 
            android:layout_width="fill_parent"
            android:layout_height="80dp"
            android:text="@string/log_out" 
            android:background="@color/white"
            android:layout_marginBottom="1dp" />
    </LinearLayout>
</ScrollView>

如您所见,我将背景设置LinearLayout为黑色,将项目设置为白色,使用 a marginBottomof 1dp,以便列表项目之间有分隔符。我现在希望注销TextView总是在屏幕的底部。万一有更多的项目超出屏幕可以容纳,注销应该简单地位于列表的末尾。

为了让注销到屏幕底部,我在这个 SO question中找到了一些解决方案。我首先像这样使用第一个建议:

<ScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >

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

        <LinearLayout 
            android:orientation="vertical" 
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="@color/black" >

            <TextView 
                android:layout_width="fill_parent"
                android:layout_height="@dimen/list_item_height"
                android:text="@string/account_notifications" 
                android:background="@color/white"
                android:layout_marginBottom="1dp"/>

            <TextView 
                android:layout_width="fill_parent"
                android:layout_height="@dimen/list_item_height"
                android:text="@string/colors" 
                android:background="@color/white"
                android:layout_marginBottom="1dp" />

        </LinearLayout>
        <TextView 
                android:layout_width="fill_parent"
                android:layout_height="@dimen/list_item_height"
                android:text="@string/log_out" 
                android:background="@color/white"
                android:layout_marginBottom="1dp" 
                android:layout_alignParentBottom="true" />
    </RelativeLayout>

</ScrollView>

这令人惊讶地使注销TextView完全消失。所以我尝试了第二个建议:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >

    <LinearLayout 
        android:orientation="vertical" 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@color/black" >

        <TextView 
            android:layout_width="fill_parent"
            android:layout_height="@dimen/list_item_height"
            android:layout_weight="1"
            android:text="@string/account_notifications" 
            android:background="@color/white"
            android:layout_marginBottom="1dp"/>

        <TextView 
            android:layout_width="fill_parent"
            android:layout_height="@dimen/list_item_height"
            android:layout_weight="1"
            android:text="@string/colors" 
            android:background="@color/white"
            android:layout_marginBottom="1dp" />
        <TextView 
            android:layout_width="fill_parent"
            android:layout_height="@dimen/list_item_height"
            android:text="@string/log_out" 
            android:background="@color/white"
            android:layout_marginBottom="1dp" />
    </LinearLayout>
</ScrollView>

但不幸的是,这也无济于事。不知道为什么不。

所以我的问题是,有谁知道我怎样才能让我的注销到屏幕底部,或者如果列表太长,到列表底部。

欢迎所有提示!

4

4 回答 4

0
Button btnLogout = new Button(this);
    btnLogout.setText("logout");

    // Adding logout button to lisview at bottom
    lv.addFooterView(btnLogout);

这里 lv 是列表视图对象。您可以对 textview 或任何其他视图执行相同的操作。

于 2013-09-30T09:55:51.867 回答
0

您可以添加列表视图的页脚视图,它将显示列表视图的底部。

    private View footerView;

    footerView = ((LayoutInflater) getActivity().getSystemService(
                    Context.LAYOUT_INFLATER_SERVICE)).inflate(
                    R.layout.footer_layout, null, false);

    TextView textview = (TextView) footerView
                    .findViewById(R.id.textview);

listview.addFooterView(footerView);

取一个布局名称footer_layout。在这种布局中采用一个 Textview。之后,您可以使用上面的代码。可能对你有帮助。

于 2013-09-30T10:02:53.640 回答
0
// try this 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:background="color/black"
              android:orientation="vertical" >

    <ScrollView
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_gravity="center_vertical"
            android:layout_weight="1">

        <LinearLayout
                android:orientation="vertical"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="1">

            <TextView
                    android:layout_width="match_parent"
                    android:layout_height="80dp"
                    android:paddingTop="30dp"
                    android:text="@string/account_notifications"
                    android:background="@color/white"
                    android:layout_marginBottom="1dp"/>
            <TextView
                    android:layout_width="match_parent"
                    android:layout_height="80dp"
                    android:text="@string/colors"
                    android:background="@color/white"
                    android:layout_marginBottom="1dp" />
        </LinearLayout>
    </ScrollView>

    <TextView
            android:layout_width="match_parent"
            android:layout_height="80dp"
            android:text="@string/log_out"
            android:background="@color/white"
            android:layout_marginBottom="1dp" />
</LinearLayout>
于 2013-09-30T10:03:58.530 回答
0

如果你想修复TextView屏幕底部的注销,你可以试试这个:

    <ScrollView
                  xmlns:android="http://schemas.android.com/apk/res/android"
                  android:layout_width="match_parent"
                  android:layout_height="match_parent"
                  android:background="color/black"
                  android:layout_gravity="center_vertical" >

          <RelativeLayout
                  android:layout_width="match_parent"
                  android:layout_height="match_parent" >
            <LinearLayout
                    android:layout_alignParentTop="true"
                    android:orientation="vertical"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content" >
                <TextView
                        android:layout_width="match_parent"
                        android:layout_height="80dp"
                        android:paddingTop="30dp"
                        android:text="@string/account_notifications"
                        android:background="@color/white"
                        android:layout_marginBottom="1dp"/>
                <TextView
                        android:layout_width="match_parent"
                        android:layout_height="80dp"
                        android:text="@string/colors"
                        android:background="@color/white"
                        android:layout_marginBottom="1dp" />
            </LinearLayout>
            <TextView
                android:id="@+id/txtLogout"
                android:layout_width="match_parent"
                android:layout_height="80dp"
                android:text="@string/log_out"
                android:background="@color/white"
                android:layout_marginBottom="1dp"
                android:layout_alignParentBottom="true" />
       </RelativeLayout>
   </ScrollView>
于 2013-09-30T10:21:20.630 回答