无论我如何更改填充,为什么我的水平LinearLayout中的Button视图设置为固定宽度?

时间:2016-02-15 07:48:54

标签: android xml android-layout

为什么我的LinearLayout中的Button视图设置为固定宽度,无论我如何更改填充?我将layout_width和height设置为wrap_content,并且我已经使用了从0dp到24dp的填充,但是我的+和 - 按钮的宽度不会改变,可以看出。

这是我的xml代码 -

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="vertical"
    tools:context="com.example.android.justjava.MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Quantity"
        android:textAllCaps="true"
        android:textSize="16sp"
        android:textColor="#757575"
        android:layout_marginTop="16dp"
        android:layout_marginLeft="16dp"
        android:layout_marginBottom="8dp"/>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginTop="8dp"
        android:layout_marginLeft="16dp"
        android:layout_marginBottom="8dp">
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="-"
            android:textSize="16sp"
            android:background="#E0E0E0"
            android:onClick="decrement"/>
        <TextView
            android:id="@+id/quantity_text_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="0"
            android:textSize="16sp"
            android:paddingLeft="8dp"
            android:paddingRight="8dp"
            android:textColor="@android:color/black"
            />
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="+"
            android:textSize="16sp"
            android:background="#E0E0E0"
            android:onClick="increment"/>
    </LinearLayout>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Price"
        android:textAllCaps="true"
        android:textSize="16sp"
        android:textColor="#757575"
        android:layout_marginTop="8dp"
        android:layout_marginLeft="16dp"
        android:layout_marginBottom="8dp"/>
    <TextView
        android:id="@+id/price_text_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="$0"
        android:textSize="16sp"
        android:textColor="@android:color/black"
        android:layout_marginTop="8dp"
        android:layout_marginLeft="16dp"
        android:layout_marginBottom="8dp"/>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="ORDER"
        android:textSize="16sp"
        android:layout_marginTop="8dp"
        android:layout_marginLeft="16dp"
        android:padding="8dp"
        android:background="#E0E0E0"
        android:onClick="submitOrder"/>
</LinearLayout>

可以看出,我的+和 - 按钮应该没有宽度,但显示器和我的手机显示其他...

https://imgur.com/6pc7sgk指向我显示的链接

任何帮助将不胜感激。

谢谢, Usun

6 个答案:

答案 0 :(得分:2)

要更改按钮的宽度,请使用layout_width = 100dp(或您希望的任何尺寸),如下所示:

df1[df1$ID %in%subset(df1, !Interaction_number)$ID,]

或者你可以这样使用填充(paddingLeft和paddingRight):

 <Button
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:text="-"
        android:textSize="16sp"
        android:background="#E0E0E0"
        android:onClick="decrement"
        />

答案 1 :(得分:0)

你可以试试这个

 <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="8dp"
    android:layout_marginLeft="16dp"
    android:layout_marginTop="8dp"
    android:orientation="horizontal"
    android:weightSum="6">

    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="3"
        android:background="#E0E0E0"
        android:onClick="decrement"
        android:text="-"
        android:textSize="16sp" />
    <!--android:padding="?yourpaddingdp"-->

    <TextView
        android:id="@+id/quantity_text_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="8dp"
        android:paddingRight="8dp"
        android:text="0"
        android:textColor="@android:color/black"
        android:textSize="16sp" />

    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="3"
        android:background="#E0E0E0"
        android:onClick="increment"
        android:text="+"
        android:textSize="16sp" />
    <!--android:padding="?yourpaddingdp"-->
</LinearLayout>

答案 2 :(得分:0)

将包含按钮和textview的linearlayout替换为以下内容:

 <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:layout_marginTop="8dp"
    android:layout_marginLeft="16dp"
    android:layout_marginBottom="8dp">
    <Button
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:text="-"
        android:textSize="16sp"
        android:background="#E0E0E0"
        android:onClick="decrement"/>
    <TextView
        android:id="@+id/quantity_text_view"
        android:layout_width="0dp"
        android:gravity="center"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:text="0"
        android:textSize="25sp"
        android:paddingLeft="8dp"
        android:paddingRight="8dp"
        android:textColor="@android:color/black"
        />
    <Button
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:text="+"
        android:textSize="16sp"
        android:background="#E0E0E0"
        android:onClick="increment"/>
</LinearLayout>

答案 3 :(得分:0)

对不起,我的英语很差。 因为Button有minWidth,你只在其中设置“+”,如果你设置了“+++++”  它,宽度将会改变。

答案 4 :(得分:0)

这是因为您的按钮宽度为"wrap_content",内容非常小。您可以给它一个特定的宽度,使其更宽。你可以尝试50dp或任何你需要的。 BTW你在做udacity建筑布局吗?这是一个很好的课程。

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="-"
android:textSize="16sp"
android:background="#E0E0E0"
android:onClick="decrement"/>

答案 5 :(得分:0)

就你的问题而言

  

“为什么我的LinearLayout中的Button视图设置为固定宽度?”

答案是:

  

“按钮是一个视图,默认情况下它的minHeight设置为48dip”

因此,您可以相应地设置minWidth,也可以使用@Sayalee Pote的答案。