我在xml中有以下视图。我在顶部有一个textview,它是一个横幅。然后我有一个listview保存消息和另一个textview,其中包含字符串'没有消息'。
在运行时,我检查数据库中是否有任何消息。如果没有,那么我隐藏列表视图并显示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>
答案 0 :(得分: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
[EDIT1]
使用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>
答案 1 :(得分:0)
您可以在运行时使用TextView
设置setvisibility()
的可见性。
答案 2 :(得分:0)
使用
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
答案 3 :(得分: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>
答案 4 :(得分:0)
将“android:gravity =”center“”添加到TextView
答案 5 :(得分:0)
尝试将TextView作为直接父对象放入RelativeLayout:
<?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>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<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:layout_alignParentBottom="true"
android:layout_alignParentStart="true"
android:layout_marginBottom="211dp"
android:gravity="center"/>
</RelativeLayout>
</LinearLayout>