1

これをどのように実装するかについての簡単な質問です。画面の下部にボタンを配置したいのですが、画面サイズが大きい場合はさらにボタンが追加されます。

たとえば、小さな画面サイズでは下部に 4 ~ 5 個のボタンが表示される場合がありますが、タブレットなどで実行すると、おそらく 20 個のボタンが表示されます。

助言がありますか?スクロールすることもできません。レイアウトをボタンで動的に埋める必要があります。

ありがとう。

4

3 に答える 3

3

レイアウトの下部にボタンを配置するには、レイアウトに対して次のようにします。

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/main_layout">
    <LinearLayout
        android:layout_height="wrap_content"
        android:id="@+id/button_layout"
        android:layout_alignParentBottom="true"
        android:layout_width="fill_parent"
        android:gravity="center">
        <Button
            android:id="@+id/Button01"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Button 1"></Button>
        <Button
            android:id="@+id/Button02"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Button 2"></Button>
        <Button
            android:id="@+id/Button03"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Button 3"></Button>
    </LinearLayout>
    <FrameLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_above="@+id/button_layout"
        android:id="@+id/content">
        <ListView
            android:id="@+id/ListView01"
            android:layout_height="fill_parent"
            android:layout_width="fill_parent"></ListView>
    </FrameLayout>
</RelativeLayout>

画面サイズに基づいて表示されるボタンの数を変更するには、複数の画面サイズに個別のレイアウトを実装する必要があります。

http://developer.android.com/guide/practices/screens_support.html

于 2010-03-13T23:47:19.223 に答える
0

ボタンのサイズがピクセル単位でわかっている場合は、DisplayMetrics を使用して画面のサイズを取得し、割り当てられたスペースに収まるボタンの数を計算できます。

     DisplayMetrics metrics = new DisplayMetrics();
     getWindowManager().getDefaultDisplay().getMetrics(metrics);

metrics.heightPixels は絶対高さをピクセル単位で返します metrics.ydpi は画面の 1 インチあたりの正確な物理ピクセルを返します

および metrics.density は、スケーリングの目的で論理密度を提供します

ここを参照してください: http://developer.android.com/reference/android/util/DisplayMetrics.html

次に、次のようなことをします

do{
    Button button=new Button(context);
    button.setText("yada yada")
    button.allYoursettings....
    .
    .
    LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(
                    LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
    LinearLayout layout=(LinearLayout) findViewById(R.id.yourlayout);
    layout.addView(button,p);
} while(havespaceleft);
于 2010-05-15T01:22:08.673 に答える
0

独自のカスタム レイアウト クラスを作成したいようですね。それか、画面スペースがなくなるまで、(たとえば) LinearLayout を埋めるだけです。

于 2010-03-14T08:08:28.320 に答える