2015-08-21 64 views
0

我正在使用如下所示的佈局。在android中獲取佈局以適應某些設備屏幕尺寸

問題

1 - 它工作正常的大部分設備,但我不能看到

- Nexus 5, Sony Xperia Z1, and Galaxy S2 

的完整佈局在上述這些設備,我只能看到高達GridView的網格。我看不到下面的EditText和Button。

2 - 佈局已經有了gridview,所以我不能使用ScrollView在較小的屏幕設備中查看整個佈局。因此上述問題沒有解決。

3 - 我的GridView有一個Imageview。當我嘗試縮放Imageview時,它仍然在Imageview的頂部顯示圖像,即使我將縮放比例設置爲CENTRE_INSIDE。

請幫助我將自己的佈局適合像Nexus 5,Samsung Galaxy S2和更大屏幕設備(如Sony Xperia Z1)的小屏幕設備。

請告訴我在我的佈局xml文件中做錯了。

注 - 要檢查的重要塊是Gridview塊和最後一行Button的線性佈局。

<?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" > 
<include 
    android:id="@+id/CustomTitle" 
    layout="@layout/custom_title" /> 
<RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@id/CustomTitle" 
    > 

    <RelativeLayout 
     android:id="@+id/Title_RelativeLayout" 
     android:layout_width="fill_parent" 
     android:layout_below="@id/FavoritesViewRealtiveLayout" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="2dip" 

     android:layout_marginTop="2dip" > 

    <TextView 
      android:id="@+id/device_detail" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"    
     android:layout_alignParentLeft="true" 
     android:layout_centerHorizontal="true" 
     android:text="@string/Fav_Edit_1" 
     android:textColor="@android:color/white" 
     android:textSize="17sp" /> 

    <RadioGroup 
     android:id="@+id/radioGroup1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentRight="true" 
     android:layout_below="@+id/device_detail" 
     android:orientation="horizontal" > 

    <RadioButton 
     android:id="@+id/radioButton1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true"    

     android:text="Camera/Encoder" 
     android:checked="true" /> 

    <RadioButton 
     android:id="@+id/radioButton2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="15dp" 
     android:text="NVR/DVR" 
     /> 

    </RadioGroup> 

    <TextView 
       android:id="@+id/AddDevice_Name_Bar_TextView" 
       android:layout_width="fill_parent" 
       android:layout_height="0.1dip" 
       android:layout_below="@+id/radioGroup1" 
       android:background="#ffffff" /> 


    </RelativeLayout> 
    <RelativeLayout 
     android:id="@+id/Date_RelativeLayout" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/Title_RelativeLayout" 
     > 

     <TextView 
      android:id="@+id/Layout_detail" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"    
     android:layout_alignParentLeft="true" 
     android:layout_centerHorizontal="true" 
     android:text="@string/Fav_Edit_2" 
     android:textColor="@android:color/white" 
     android:textSize="17sp" /> 

        <Button 
      android:id="@+id/division_4_Button" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_marginLeft="5dp" 
      android:layout_marginTop="10dp" 
      android:layout_below="@+id/Layout_detail" 
      android:background="@drawable/div4_layout_mode_selector" 
      android:textColor="@drawable/textview_color_selector" /> 
     <Button 
       android:id="@+id/division_9_Button" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginLeft="50dip" 
       android:layout_marginTop="10dp" 
       android:layout_below="@+id/Layout_detail" 
       android:layout_alignParentLeft="true" 
       android:background="@drawable/div9_layout_mode_selector" 
       android:textColor="@drawable/textview_color_selector" /> 


     <Button 
       android:id="@+id/division_delete_Button" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginLeft="50dip" 
       android:layout_marginTop="10dp" 
       android:layout_below="@+id/Layout_detail" 
       android:layout_alignParentRight="true" 
       android:layout_marginRight="5dp" 
       android:background="@drawable/div_delete_selector" 
       android:textColor="@drawable/textview_color_selector" /> 
    </RelativeLayout> 

    <GridView 
     android:id="@+id/Favorite_GridView" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="10dp" 
     android:layout_below="@id/Date_RelativeLayout" 
     android:verticalSpacing="10dp" 
     android:horizontalSpacing="10dp" 
     android:listSelector="@drawable/gridview_norecode_selector" 
     android:numColumns="3"    

     /> 
    <TextView 
       android:id="@+id/AddDevice_Name_Bar_TextView" 
       android:layout_width="fill_parent" 
       android:layout_height="0.1dip" 
       android:layout_marginTop="5dp" 
       android:layout_below="@+id/Favorite_GridView" 
       android:background="#ffffff" /> 

    <RelativeLayout 
     android:id="@+id/Ti_RelativeLayout" 
     android:layout_width="fill_parent" 
     android:layout_below="@id/AddDevice_Name_Bar_TextView" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="2dip"    
     android:layout_marginTop="2dip" > 

    <TextView 
      android:id="@+id/device_detail" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"    
     android:layout_alignParentLeft="true" 
     android:layout_centerHorizontal="true" 
     android:text="@string/Fav_Edit_3" 
     android:textColor="@android:color/white" 
     android:textSize="17sp" /> 

    <EditText 
       android:id="@+id/AddDevice_Name_EditText" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_alignParentLeft="true" 
       android:layout_below="@+id/device_detail" 
       android:ellipsize="end" 
       android:hint="@string/Fav_Edit_4" 
       android:inputType="textUri" 
       android:maxLength="100" 
       android:singleLine="true" 
       android:text="" /> 

    <LinearLayout 
     android:id="@+id/Button_Layout" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 

     android:layout_marginTop="1dp" 
     android:layout_below="@id/AddDevice_Name_EditText" 
     android:background="@android:color/darker_gray" 
     android:orientation="horizontal" > 
    <Button 
     android:id="@+id/AddDevice_Save_Btn" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_margin="5dip" 
     android:layout_weight="1" 
     android:text="@string/Save" /> 

</LinearLayout> 

    </RelativeLayout> 

</RelativeLayout> 

我還附上GridView的xml文件

<?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/grid_color_selector" > 
<ImageView 
    android:id="@+id/image" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"  
    /> 

<TextView 
    android:id="@+id/Day_TextView" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@drawable/gridview_line_norecord" 
    android:gravity="center" 
    android:textColor="@android:color/white" 
    android:textSize="14sp"   
    android:text="Hello" /> 
</RelativeLayout> 

回答

1

有與具有GridView低於元素的一個根本問題。通常,您無法控制GridView中有多少元素,因此如果您使用wrap_content作爲其高度,它將展開以容納所有項目。

在正常情況下你可以使用一個GridView與中A match_parent高度,固定(X DP)或比例(加權 - 實際上可能仍然match_parent但是包括在加權容器)。

由於您必須顯示它下面的項目,所以第一個選項並不是真正的選擇。所以你可以選擇其他選項之一。

+0

感謝您發表評論。 – Sunil