0

Dialogユーザーにいくつかのオプションを表示するためにa を使用しています。私はxmlどのコンテンツのいくつかのボタンを膨らませました。ランドスケープ モードでは、ボタンは次のように表示されます。land_dialog

ポートレート モードでは、ボタンが一列に表示されます。ただし、画面にすべてのボタンを表示できないため、一部のボタンが表示されません。私はこのようなポートレートモードのボタンが欲しい: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();
4

1 に答える 1

0
  • を使用しGridView、その列を次元に設定します。android:numColumns="@integer/num_columns"
  • 寸法宣言に追加します (たとえば、values/dimens.xml):<integer name="num_columns">3</integer>
  • 方向が横向きに設定された別の寸法ファイルを追加します (たとえば、values-land/dimens.xml)。<integer name="num_columns">6</integer>

これで、デバイスの向きに応じて、Android は列数として 3 または 6 の値を選択します。

にデータをバインドするには、基本的なアダプターを作成する必要がありますGridView

于 2013-06-11T21:30:11.137 に答える