0

我在xml中具有以下視圖。我在頂部是一個橫幅文本視圖。然後我有一個列表視圖,它包含消息和另一個包含字符串「沒有消息」的textview。如何將textview居中在linearlayout中

在運行時我檢查數據庫中是否有任何消息。如果沒有,那麼我隱藏listview並顯示textviewn消息。

我希望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

好,根據你在編輯改變什麼,如果你在問題設置文本視圖「WRAP_CONTENT」兩個layout_width和layout_height,它應該工作打算。

<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> 
0

您可以通過改變高度 「FILL_PARENT」 做到這一點:改變他的父母到的RelativeLayout和使用

<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" /> 

或者:

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> 
+0

第二個textview現在在橫幅的頂部。編輯1是我現在擁有的。我如何設置第二個textview到屏幕中心 – turtleboy

+0

請參閱我的編輯解決方案 – Andros

0

您可以設置TextView在運行時使用setvisibility()知名度。

0

使用

android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:gravity="center" 
0

添加「機器人:比重=」中心」「你的TextView

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>