0

私はxmlで次のビューを持っています。上部にバナーであるテキストビューがあります。次に、メッセージを保持するリストビューと、「メッセージがありません」という文字列を保持する別のテキストビューがあります。

実行時に、DB にメッセージがあるかどうかを確認します。何もない場合は、リストビューを非表示にして textviewnomessages を表示します。

バナーの下ではなく、ビューの中央に textviewnomessages を配置したいと思います。textviewnomessages を画面の中央に指定するにはどうすればよいですか。ありがとう

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/carefreebgscaled"

    android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android">

<TextView
        android:id="@+id/textviewmessageslabel"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:background="@color/blue_alpha_background"
        android:text="Messages"
         android:textColor="#FFFFFF"
        android:textAppearance="?android:attr/textAppearanceLarge" />



    <ListView
        android:id="@+id/listviewmessages"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="#ccffffff"
        android:cacheColorHint="#0000"
        android:padding="5dp" >

    </ListView>

    <TextView
    android:id="@+id/textviewnomessageslabel"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="You have no messages."
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textColor="#0000FF" />

</LinearLayout>

.[編集 1]

<?xml version="1.0" encoding="utf-8"?>

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/carefreebgscaled" >

<TextView
        android:id="@+id/textviewmessageslabel"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:background="@color/blue_alpha_background"
        android:text="Messages"
         android:textColor="#FFFFFF"
        android:textAppearance="?android:attr/textAppearanceLarge" />



    <ListView
        android:id="@+id/listviewmessages"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="#ccffffff"
        android:cacheColorHint="#0000"
        android:padding="5dp" >

    </ListView>

    <TextView
    android:id="@+id/textviewnomessageslabel"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:text="You have no messages."
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textColor="#0000FF"
    android:layout_centerInParent="true" />

</RelativeLayout>
4

6 に答える 6

0

編集で変更した内容に基づいて、問題のテキスト ビューを layout_width と layout_height の両方で「wrap_content」に設定すると、意図したとおりに動作するはずです。

<TextView
    android:id="@+id/textviewnomessageslabel"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="You have no messages."
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textColor="#0000FF"
    android:layout_centerInParent="true" />

また、リストビューを一番上のテキスト ビューの下に設定する必要があります。これは次のようになります。

<ListView
    android:id="@+id/listviewmessages"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_below="@id/textviewmessageslabel"
    android:background="#ccffffff"
    android:cacheColorHint="#0000"
    android:padding="5dp" >

</ListView>
于 2013-10-24T13:39:39.210 に答える
0

使用する

android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
于 2013-10-24T13:30:21.510 に答える
0

高さを "fill_parent" に変更することでそれを行うことができます:

<TextView
    android:id="@+id/textviewnomessageslabel"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:text="You have no messages."
    android:gravity="center"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textColor="#0000FF" />

または、彼の親を RelativeLayout に変更して、次を使用します。

android:layout_centerInParent="true

[編集1]

RelativeLayout で:

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

    <TextView
            android:id="@+id/textviewmessageslabel"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="Messages"
            android:textColor="#FFFFFF"
            android:textAppearance="?android:attr/textAppearanceLarge" />



    <ListView
            android:id="@+id/listviewmessages"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:background="#ccffffff"
            android:layout_below="@id/textviewmessageslabel"
            android:cacheColorHint="#0000"
            android:padding="5dp" >

    </ListView>

    <TextView
            android:id="@+id/textviewnomessageslabel"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="You have no messages."
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:textColor="#0000FF"
            android:gravity="center"
            android:layout_centerInParent="true" />

</RelativeLayout>
于 2013-10-24T13:26:02.327 に答える