これをどのように実装するかについての簡単な質問です。画面の下部にボタンを配置したいのですが、画面サイズが大きい場合はさらにボタンが追加されます。
たとえば、小さな画面サイズでは下部に 4 ~ 5 個のボタンが表示される場合がありますが、タブレットなどで実行すると、おそらく 20 個のボタンが表示されます。
助言がありますか?スクロールすることもできません。レイアウトをボタンで動的に埋める必要があります。
ありがとう。
これをどのように実装するかについての簡単な質問です。画面の下部にボタンを配置したいのですが、画面サイズが大きい場合はさらにボタンが追加されます。
たとえば、小さな画面サイズでは下部に 4 ~ 5 個のボタンが表示される場合がありますが、タブレットなどで実行すると、おそらく 20 個のボタンが表示されます。
助言がありますか?スクロールすることもできません。レイアウトをボタンで動的に埋める必要があります。
ありがとう。
レイアウトの下部にボタンを配置するには、レイアウトに対して次のようにします。
<?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
ボタンのサイズがピクセル単位でわかっている場合は、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);
独自のカスタム レイアウト クラスを作成したいようですね。それか、画面スペースがなくなるまで、(たとえば) LinearLayout を埋めるだけです。