如何设置(在XML中)按钮的宽度为屏幕的一半。我发现只包装内容,匹配父级(填满整个屏幕)和精确的dp数量,例如:50dp。 如何设置它完全按住屏幕?
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="2"
>
<Button
android:id="@+id/buttonCollect"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:text="przycisk" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:text="Button" />
答案 0 :(得分:14)
这可以通过在布局上放置两个小部件来完成:
使用LinearLayout并在两个小部件(按钮和另一个小部件)上设置layout_width="fill_parent"
,并将layout_weight也设置为相同的值。
并且LinearLayout将平均分割两个小部件之间的宽度,并且您的按钮将占据屏幕的一半。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/buttonCollect"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:text="przycisk" />
<Button
android:id="@+id/button2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:text="Button" />
答案 1 :(得分:8)
这在XML中是不可能的。但是,您可以使用DisplayMetrics获取显示的宽度,将其除以2并将其设置为按钮的宽度,从而在Java中执行此操作。像这样:
Button button = (Button) findViewById(R.id.button);
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int width = displaymetrics.widthPixels;
int buttonWidth = width/2;
//Apply this to your button using the LayoutParams for whichever layout you have.
答案 2 :(得分:0)
使用textview。
<TextView
android:id="@+id/textViewHelper"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" />
然后将两个按钮或其中一个按钮添加到其左侧和/或右侧。
<Button
android:id="@+id/saveList"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/deleteAllPlaylists"
android:layout_toRightOf="@+id/textViewHelper"
android:text="@string/save_temp_playlist" />
<Button
android:id="@+id/deleteAllPlaylists"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/textViewHelper"
android:text="@string/delete_all_playlists" />
找到答案here
我在堆栈上的第一篇文章,希望我帮助XD