2013-04-23 57 views
4

如何在我的Layout中水平居中對齊ListView的文本項?
老實說,我問了至少一個小時才問這樣一個基本問題。ListView中的中心文本項目

謝謝。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    tools:context=".MainActivity" > 

    <EditText 
     android:layout_width="match_parent" 
     android:layout_height="50dp" 
     android:hint="Remind..." /> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="200dp" 
     android:baselineAligned="false" 
     android:orientation="horizontal" > 

     <ListView 
      android:id="@+id/listviewTimeInterval" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:scrollbars="none" /> 

     <-- . . . --/> 
     <-- more lists of the same kind--/> 
     <-- . . .--/> 

    </LinearLayout> 

</LinearLayout> 
+0

不應該在自定義項目XML中設置'TextViews'的'gravity'嗎? – 2013-04-23 11:44:00

回答

13

您需要爲您的列表視圖項創建自己的佈局,像這樣

例子:

textcenter.xml:

<LinearLayout 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:gravity="center" > 
    <TextView 
     android:id="@id/textItem" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" /> 
</LinearLayout> 

然後,在你的代碼,你的要做到這一點

ArrayAdapter<String> ad = new ArrayAdapter<String>(this, R.layout.textcenter, R.id.textItem, functions); 
listView.setAdapter(ad); 
+1

您的答案是否有效。但我相信OP已經在使用某種自定義的'ListView'。它的ID爲'listviewTimeInterval' – 2013-04-23 11:45:02

+3

ListView本身不控制文本在文本中的顯示方式嗎?爲什麼我應該使用單獨的佈局? – jackhab 2013-04-23 12:04:06

+0

好吧,我誤解了佈局認爲他們只需要進行活動的作用。然後我意識到ListView實際上是一個包含特定佈局的許多視圖的列表。 – jackhab 2013-04-29 15:31:59

-4

在您的自定義ListView xml文件的TextView佈局中使用android:gravity="center"。這將做到這一點。

+0

這是一個簡短的答案,可能是一個評論,而不是。你有沒有閱讀[guide](http://stackoverflow.com/help/how-to-answer)關於如何回答StackOverflow的問題? – starsplusplus 2014-02-23 22:34:35

3

我發現了它不可能居中如果LisView本身與 機器人定義在ListView的項目:layout_width =「WRAP_CONTENT」 這並不讓SENCE,因爲這個參數只會影響ListView控件的位置,而不是其元素。

無論如何,改變列表match_parent的寬度允許與他們的(layout_)重力屬性居中的項目。

+0

謝謝!一直試圖將一個列表視圖集中數小時。 – 2017-01-25 23:49:57