2013-06-11 54 views
0

我正在使用Dialog向用戶顯示一些選項。我已經膨脹了一個xml其中的一些內容按鈕。在橫向模式下,按鈕顯示如下:land_dialog按鈕在android中的響應定位

縱向模式按鈕顯示在一行中。但由於屏幕無法保存所有按鈕,因此某些按鈕不顯示。我想像這樣的肖像模式按鈕:portrait_dialog

這意味着響應。 但我該怎麼做?我的XML代碼:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:background="@drawable/jinish" > 

    <Button 
      android:id="@+id/sound2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginRight="2dp" 
      android:layout_marginLeft="2dp" 
      android:background="@drawable/sound_xml"/> 

      <Button 
      android:id="@+id/review2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginRight="2dp" 
      android:background="@drawable/review_xml"/> 

      <Button 
      android:id="@+id/instraction" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginRight="2dp" 
      android:background="@drawable/instraction_xml"/>    

      <Button 
      android:id="@+id/solve" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:background="@drawable/solve_xml" 
      android:layout_marginRight="2dp"/> 

      <Button 
      android:id="@+id/reset" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:background="@drawable/reset_xml" 
      android:layout_marginRight="2dp"/> 

</LinearLayout> 

和我的Java代碼:

private LinearLayout options_layout; 
private Dialog options_show; 

options_layout = (LinearLayout) getLayoutInflater().inflate(
       R.layout.puzzle_options, null); 

options_show = new Dialog(this); 
options_show.getWindow().requestFeature(Window.FEATURE_NO_TITLE); 
options_show.setContentView(options_layout); 
options_show.setCancelable(true); 
options_show.setCanceledOnTouchOutside(true); 
options_show.getWindow().setBackgroundDrawable(new ColorDrawable(0)); 

options_show.show(); 

回答

0
  • 使用一個GridView,並設置其列到捫:android:numColumns="@integer/num_columns"
  • 添加到您的維度聲明(值/例如dimens.xml):<integer name="num_columns">3</integer>
  • 添加另一個尺寸文件,其方向設置爲橫向(values-land/dimens.xml for ex充足):<integer name="num_columns">6</integer>

現在,根據設備的方向,Android會爲列數選擇值3或6。

您將需要創建一個基本適配器,以將數據綁定到GridView