这是我的Android布局。我希望显示一个3列3列的表格。每个单元格都是一个方形(偶数)按钮。如何使中心红色正方形/按钮位于Android设备的中心?我必须在屏幕中央而不是顶部具有此网格。
方形按钮代码:
public class SquareButton extends Button {
public SquareButton(Context context) {
super(context);
}
public SquareButton(Context context, AttributeSet attrs) {
super(context, attrs);
}
public SquareButton(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public SquareButton(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
@Override public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int width = MeasureSpec.getSize(widthMeasureSpec);
int height = MeasureSpec.getSize(heightMeasureSpec);
int size = width > height ? height : width;
setMeasuredDimension(size, size);
}
}
我的布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center">
<GridLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:rowCount="3"
android:columnCount="3"
android:orientation="vertical"
android:foregroundGravity="center">
<LinearLayout>
<com.example.talangel.stacktests.SquareButton
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:background="#FF0000"
android:layout_weight="1"/>
<com.example.talangel.stacktests.SquareButton
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:background="#00FF00"
android:layout_weight="1"/>
<com.example.talangel.stacktests.SquareButton
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:background="#0000FF"
android:layout_weight="1"/>
</LinearLayout>
<LinearLayout>
<com.example.talangel.stacktests.SquareButton
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:background="#0000FF"
android:layout_weight="1"/>
<com.example.talangel.stacktests.SquareButton
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:background="#FF0000"
android:layout_weight="1"/>
<com.example.talangel.stacktests.SquareButton
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:background="#00FF00"
android:layout_weight="1"/>
</LinearLayout>
<LinearLayout>
<com.example.talangel.stacktests.SquareButton
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:background="#00FF00"
android:layout_weight="1"/>
<com.example.talangel.stacktests.SquareButton
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:background="#0000FF"
android:layout_weight="1"/>
<com.example.talangel.stacktests.SquareButton
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:background="#FF0000"
android:layout_weight="1"/>
</LinearLayout>
</GridLayout>
</RelativeLayout>
答案 0 :(得分:1)
您需要将代码更改为。
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center">