0

Androidアプリで設定画面を作っています。もちろん、このリストには事前に定義された一連のオプション (通知/色/ログアウトなど) があります。そこで、xml で静的にリストを作成することにしました。画面よりも多くのコンテンツがある場合、リストは同じように表示されるはずなので、LinearLayouta 内に入れ子にしました(その中の項目を静的に定義したいので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を黒に、アイテムを白に設定し、marginBottomof1dpを使用して、リスト アイテム間にセパレーターを配置しています。私は今、ログアウト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完全になくなります。だから私は次のように2番目の提案を試みました:

<?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);

1 つのレイアウト名 footer_layout を取ります。この 1 つのレイアウトでは、1 つの Textview を使用します。その後、上記のコードを使用できます。お役に立てるかもしれません。

于 2013-09-30T10:02:53.640 に答える