12 個のボタンがあり、レイアウトの水平軸と垂直軸に均等に配置する必要があります。使えませんGridLayout
。これはどのように見えるべきかです:
weight
また、プロパティの誤った使用によるパフォーマンスの問題についてのメッセージを受け取りたくありません。現在、各ボタンの位置を他のボタンとの関係で設定することでそれをやろうとしていRelativeLayout
ますが、もっと簡単/簡単/より推奨される方法があるかもしれません。
アップデート
だから、私は a を使うことに決めました。GridView
これが今の私のコードです:
<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/menuGrid"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnWidth="32dp"
android:numColumns="3"
android:verticalSpacing="5dp"
android:horizontalSpacing="5dp"
android:stretchMode="spacingWidthUniform"
android:gravity="fill" />
私のアダプタークラスはこれです:
public class GridAdapter extends BaseAdapter {
// Different methods ...
// Images for the buttons
private Integer[] mThumbIds = {
R.drawable.btn_1, R.drawable.btn_2, R.drawable.btn_3,
R.drawable.btn_4, R.drawable.btn_5, R.drawable.btn_6,
R.drawable.btn_7, R.drawable.btn_8, R.drawable.btn_9,
R.drawable.btn_10, R.drawable.btn_11, R.drawable.btn_12
};
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageButton imageButton;
if (convertView == null) {
imageButton = new ImageButton(mContext);
imageButton.setLayoutParams(new GridView.LayoutParams(48, 48));
imageButton.setScaleType(ImageButton.ScaleType.CENTER_CROP);
} else {
imageButton = (ImageButton) convertView;
}
imageButton.setImageResource(mThumbIds[position]);
return imageButton;
}
}
私の主な活動では、アダプターを次のように設定しています (それらは中央に配置され、スペース全体を占有しません)。
GridView gridview = (GridView) v.findViewById(R.id.menuGrid);
gridview.setAdapter(new GridAdapter(this));
ただし、ボタンは次のように表示されます (領域全体を占めるのではなく、中央に小さく表示されます)。