4

如何设置(在 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" />

4

3 回答 3

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" />
于 2012-07-01T22:40:15.960 回答
8

这在 XML 中是不可能的。但是,您可以在 Java 中使用DisplayMetrics获取显示的宽度,将其除以 2 并将其设置为按钮的宽度。像这样的东西:

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.
于 2012-07-01T22:42:57.520 回答
0

使用文本视图。

<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" />

在这里找到了答案

我在堆栈上的第一篇文章,希望对我有帮助 XD

于 2013-11-27T23:08:23.457 回答