2013-07-27 109 views
0

我有這樣的代碼Android的佈局框溢出

<RelativeLayout 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:background="@drawable/shape" 
android:gravity="top" > 

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:gravity="center_vertical" > 

    <RelativeLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:gravity="center" > 

     <ImageButton 
      android:id="@+id/imageButton1" 
      android:layout_width="100dp" 
      android:layout_height="100dp" 
      android:background="@null" 
      android:onClick="btnCat1" 
      android:src="@drawable/ic_launcher" > 
     </ImageButton> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/imageButton1" 
      android:layout_centerInParent="true" 
      android:clickable="false" 
      android:text="@string/hello_world" /> 
    </RelativeLayout> 

    <RelativeLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:gravity="center" > 

     <ImageButton 
      android:id="@+id/imageButton1" 
      android:layout_width="100dp" 
      android:layout_height="100dp" 
      android:background="@null" 
      android:onClick="btnCat1" 
      android:src="@drawable/ic_launcher" > 
     </ImageButton> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/imageButton1" 
      android:layout_centerInParent="true" 
      android:clickable="false" 
      android:text="@string/hello_world" /> 
    </RelativeLayout> 
    <RelativeLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:gravity="center" > 

     <ImageButton 
      android:id="@+id/imageButton1" 
      android:layout_width="100dp" 
      android:layout_height="100dp" 
      android:background="@null" 
      android:onClick="btnCat1" 
      android:src="@drawable/ic_launcher" > 
     </ImageButton> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/imageButton1" 
      android:layout_centerInParent="true" 
      android:clickable="false" 
      android:text="@string/hello_world" /> 
    </RelativeLayout> 
    <RelativeLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:gravity="center" > 

     <ImageButton 
      android:id="@+id/imageButton1" 
      android:layout_width="100dp" 
      android:layout_height="100dp" 
      android:background="@null" 
      android:onClick="btnCat1" 
      android:src="@drawable/ic_launcher" > 
     </ImageButton> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/imageButton1" 
      android:layout_centerInParent="true" 
      android:clickable="false" 
      android:text="@string/hello_world" /> 
    </RelativeLayout> 

</LinearLayout> 

有4組的圖像和文字,但如果我打開它在小分辨率我只能看到3盒。我怎樣才能讓他們在下一行顯示?

編輯:應該是這樣的例子

回答

0

它看起來像你可能試圖複製一個GridView的行爲。您可以使用GridView根據視圖的大小從2列切換到4列。

根據您的目標版本,可能適用於您的另一種替代方法是在較少的屏幕空間可用時指定不同的佈局文件(檢查表2「smallestWidth」行):Providing Alternative Resources。您可以通過指定文件夾(如「res/layout-sw600dp /」)並將相同名稱的佈局文件放入該文件夾來使用此方法。在每個佈局文件中,然後用所需的列數顯式佈局文件。

如果您的設備針對的設備不識別「sw」資源修飾符,您可以在代碼中手動模擬此操作,方法是指定一個佈局文件以按名稱膨脹,然後根據屏幕大小(在應用程序運行時這當然可用)。

讓我知道你是否想詳細說明一個具體的方法。

+0

謝謝,可能這是解決方案 – dontHaveName

0

您已經爲每個元素的寬度不變(100dp)。它不適合寬度低於400dp的屏幕。解決這個問題的一種方法是使用水平滾動視圖。

用以下替換頂部RelativeLayout。

<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" > 

如果您希望在自己的附圖上不同的屏幕有不同的佈局一樣,簡單地使用兩種不同的佈局個XML描述here

+0

但我不想滾動它們,我需要它們跳下 – dontHaveName

+0

請參閱我編輯的答案。他們不會簡單地跳下去。你需要爲這種安排有不同的xml。 –

+0

它不會幫助我..我將不得不爲每個分辨率創建一個文件,它就像10個文件。 – dontHaveName