1
我正在創建一個應用程序,其中有一個選擇時間(小時和分鐘)的功能。爲此,我創建了兩個列表視圖,一個用於選擇小時,另一個用於選擇分鐘。這兩個列表視圖應該有七個可見的項目。然後有兩個文本視圖應該與第4項的底部對齊。你可以看到截圖以更好地理解它。將列表視圖與佈局的其他元素對齊
的UI看起來應該像圖像。但問題是,對齊方式隨不同的屏幕分辨率而變化。我試圖爲不同的dpis(hdpi,mdpi,xhdpi,xxhdpi)設置不同的邊距和尺寸。但是,仍然對於某些設備(例如S4),視圖不對齊,列表視圖顯示第8項的頂部。我使用diff測試了模擬器上的應用程序。決議和它在那裏工作得很好。
在XML佈局文件中的代碼:
<RelativeLayout
android:id="@+id/linearLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:visibility="visible">
<ListView
android:id="@+id/hourList"
android:layout_width="@dimen/timerListViewWidth"
android:layout_height="match_parent"
android:paddingBottom="63dp"
android:background="@null"
android:scrollbars="none"
android:divider="@null"
android:layout_centerVertical="true"
android:dividerHeight="0dp" >
</ListView>
<TextView
android:id="@+id/textView7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="hrs"
android:textColor="@color/white"
android:paddingBottom="@dimen/bottomPaddingListPostFix" <!-- diff. for diff. dpis-->
android:layout_toRightOf="@+id/hourList"
android:layout_centerVertical="true"
android:textAppearance="?android:attr/textAppearanceSmall" />
<ListView
android:id="@+id/minList"
android:layout_width="@dimen/timerListViewWidth"
android:layout_height="match_parent"
android:paddingBottom="63dp"
android:background="@null"
android:layout_toRightOf="@+id/textView7"
android:layout_marginLeft="10dp"
android:scrollbars="none"
android:layout_centerVertical="true"
android:divider="@null"
android:dividerHeight="0dp" >
</ListView>
<TextView
android:id="@+id/textView8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="min"
android:textColor="@color/white"
android:paddingBottom="@dimen/bottomPaddingListPostFix" <!-- diff. for diff. dpis-->
android:layout_toRightOf="@+id/minList"
android:layout_centerVertical="true"
android:textAppearance="?android:attr/textAppearanceSmall" />
</RelativeLayout>
和列表視圖行的代碼:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@null"
android:orientation="vertical"
android:duplicateParentState="true" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:background="@null"
android:gravity="center_horizontal"
android:text="24"
android:textColor="@drawable/row_selector"
android:duplicateParentState="true"
android:textSize="@dimen/timerListViewItemTextSize" /> <!-- diff. for diff. dpis-->
</LinearLayout>
是否可以動態地管理這個對所有差異。屏幕尺寸和分辨率?如果是的話,我怎麼能做到這一點?
夥計們標記正確的答案。因此,直接參考和實施對其他人有幫助。 – 2014-12-22 05:16:31
謝謝Darshil。我創建了hrs和mins的列表視圖,行高與listview中的數字相同。但是,沒有必要禁用滾動功能,因爲我創建了只有4個項目的列表視圖,因此最後一個項目是標題'hrs'或'mins'。 對不起,標記你的答案是正確的。 – 2015-04-01 22:59:46