通常我的gui看起来像下面
我尝试在“获取”按钮中为宽度和高度实现相同的大小。但结果不公平(见下图)
我试过的代码片段
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_spinner);
spinner = (Spinner)findViewById(R.id.spinner1);
spinner.setAdapter(new MyAdapter(this, R.layout.row, strings));
Button btn = (Button)findViewById(R.id.getbtn);
int x = btn.getLayoutParams().height;
btn.getLayoutParams().width = x;
}
XML
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Testing"
/>
<Spinner
android:id="@+id/spinner1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:prompt="@string/prompt"/>
<Button
android:id="@+id/getbtn"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:text="Get"
/>
</LinearLayout>
</LinearLayout>
如何解决这个问题?
提前致谢。
答案 0 :(得分:0)
您正在为fill_parent
XML提供android:layout_height
属性Button
。因此,当您将height
的{{1}}值设置为width
的{{1}}时,Button
会占用Button
来填充父宽度。
现在,更改width
Button
到
android:layout_height="fill_parent"
答案 1 :(得分:0)
您可以创建自定义按钮,覆盖onMeasure()
,如下所示:
public class SquareHeightButton extends Button {
...
...
@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(heightMeasureSpec, heightMeasureSpec);
}
}