看起來很簡單,固執地說這個ListView不會居中(或者它的內容在 - 對我無關緊要)。居中ListView橫向
這是活動佈局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.drobiazko.den.mobineon.MainActivity"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center_horizontal"
android:background="@drawable/bg">
<RelativeLayout android:id="@+id/clock_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<!--<RelativeLayout android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/holo_blue_dark">-->
<com.drobiazko.den.mobineon.ListViewRowsHeight
android:id="@+id/listview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:overScrollMode="never"
android:scrollbars="none"
android:divider="@null"
android:listSelector="@android:color/transparent"
android:persistentDrawingCache="scrolling|animation"
android:background="@android:color/holo_green_dark" />
<!--</RelativeLayout>-->
</LinearLayout>
這是ListView的項目佈局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView android:id="@+id/btn_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/custom_btn_icon" />
<TextView android:id="@+id/btn_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/custom_btn_name" />
<TextView android:id="@+id/btn_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/custom_btn_count" />
</RelativeLayout>
我用盡了一切(包括簡化佈局到最大),但它仍然不會去。
有趣的是,由於父LinearLayout的android:gravity="center_horizontal"
,第一個相對佈局clock_container - 中心像一個魅力。爲什麼不會ListView?
後來補充: 通過FOliveira的回答啓發,我已經做了一些調查,發現: 一切正常,家長LinearLayout
有android:gravity="center_horizontal"
恭敬地中心他的孩子。 ListView的子項左對齊的原因是ListView儘管具有android:layout_width="wrap_content"
屬性,但仍具有所有可能的寬度。
任何人都知道這是爲什麼?
'ListView'將'wrap_content'作爲'layout_height'。永遠不要這樣做,這違背了ListView的目的,並且不能正常工作。 –
不是我懷疑你的意見,但它的工作原理!也許是因爲我的ListView適配器設置爲只顯示6個項目,並允許滾動其餘的所有內容... –
我意識到它並不真正與您的問題相關,但將'wrap_content'放在ListViews的高度是一些東西你永遠不應該這樣做。 'ListView'不是爲此設計的,只是想一想:你有一個'ListView',因爲你想滾動一堆不適合屏幕的項目。通過將'wrap_content'設置爲'layout_height',您告訴'ListView'完全相反,與所有子視圖的組合一樣高。像'wrapper_content'這樣的'ListView'只會導致長期的問題。這同樣適用於任何'ScrollView'。 –