[英]Multiple Screen Support
我在多屏支持方面遇到一些問題,我使用dp(dpi)來指定layout_heigth和layout_width,希望這是支持多屏的更好方法,但是當我嘗試使用兩部智能手機時,遇到了兩種不同的結果。
我舉一個例子,這是我使用的布局:
<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/cities_main_layout"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ListView
android:id="@+id/citieslist"
android:layout_width="wrap_content"
android:layout_height="320dip"
android:layout_gravity="center_vertical"
android:layout_below="@id/cities_main_layout"
/>
<LinearLayout
android:id="@+id/cities_button_layout"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/citieslist"
android:layout_gravity="center_vertical">
<Button
android:id="@+id/bycountry"
android:layout_height="50dip"
android:layout_width="105dip"
android:background="@drawable/buttonmarket"
android:text="@string/button_bycountry"
/>
<Button
android:id="@+id/top10"
android:layout_height="50dip"
android:layout_width="105dip"
android:background="@drawable/buttonmarket"
android:text="@string/button_top10"
/>
<Button
android:id="@+id/recommended"
android:layout_height="50dip"
android:layout_width="105dip"
android:background="@drawable/buttonmarket"
android:text="@string/button_recommended"
/>
</LinearLayout>
</RelativeLayout>
該按鈕位於布局的底部,我看到兩個不同的結果:
在最后一部智能手機中,我可以看到按鈕,而在第一部智能手機中,我無法...出了什么問題?
我必須為任何一組屏幕編寫一個布局?
您的ListView有
android:layout_height="320dip"
現在,如果手機屏幕較小,則將無法容納手機。
嘗試改為執行此操作:(由於注釋而被編輯。在Eclipse中正確顯示)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relative"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ListView
android:id="@+id/listview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FF0000"
android:layout_above="@+id/linlay">
</ListView>
<LinearLayout
android:id="@+id/linlay"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="30dip"
android:background="#00FF00"
android:layout_alignParentBottom="true">
</LinearLayout>
</RelativeLayout>
我認為Thant應該修復它。
干杯
正如其他人指出的那樣,您的問題是您硬連接了ListView
的大小。 如果要使業務規則“在底部具有按鈕,並讓ListView
填充其余部分”,則實際上需要編寫實現“在底部具有按鈕,並讓ListView
填充其余部分”的代碼。
這里有兩種主要方法:
對按鈕和ListView
使用LinearLayout
父級。 將android:layout_height="0px"
和android:layout_weight="1"
用於ListView
。 對按鈕使用常規的android:layout_height
(大概在它們自己的LinearLayout
),對它們不使用android:layout_weight
對按鈕和ListView
使用RelativeLayout
父級。 將按鈕定義為具有android:layout_alignParentBottom="true"
。 將ListView
定義為具有ndroid:layout_alignParentTop="true"
和android:layout_above="..."
,其中...
是按鈕的LinearLayout
的ID。
我想說這是因為您要特別聲明ListView
的高度,然后放置將按鈕保持在底部的LinearLayout
。 嘗試將其更改,而不是放在ListView
的底部,例如
<LinearLayout
android:id="@+id/cities_button_layout"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:alignparentbottom="true"
android:layout_gravity="center_vertical">
我不確定align_parent_bottom
是否為100%正確的拼寫。
好吧,當我打字時,其他人都在擊敗我,哈哈,但是,是的,您很難使用ListView和Buttons這許多本不應該的東西。 看看這個:
<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/cities_main_layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<LinearLayout
android:id="@+id/cities_button_layout"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
>
<Button
android:id="@+id/bycountry"
android:layout_height="50dip"
android:layout_width="fill_parent"
android:layout_weight="1"
android:background="@drawable/buttonmarket"
android:text="@string/button_bycountry"
/>
<Button
android:id="@+id/top10"
android:layout_height="50dip"
android:layout_width="fill_parent"
android:layout_weight="1"
android:background="@drawable/buttonmarket"
android:text="@string/button_top10"
/>
<Button
android:id="@+id/recommended"
android:layout_height="50dip"
android:layout_width="fill_parent"
android:layout_weight="1"
android:background="@drawable/buttonmarket"
android:text="@string/button_recommended"
/>
</LinearLayout>
<ListView
android:id="@+id/citieslist"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@id/cities_button_layout"
/>
</RelativeLayout>
您的RelativeLayout上有android:orientation
,它實際上不是RelativeLayout包含的屬性。
您應該為按鈕使用layout_weight
屬性,而不是硬接線尺寸。 在我的示例中,所有按鈕的寬度為fill_parent
,權重為1。這使它們均勻地分配了空間。
首先列出固定按鈕的布局,將其設置為alignParentBottom="true"
。 然后設置ListView控件來FILL_PARENT,並layout_above
您的按鍵布局。 這樣可以使按鈕布局保持在底部,並使ListView占據按鈕上方的所有空間。
多田!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.