【问题标题】:EditText width not taking effect AndroidEditText宽度不生效Android
【发布时间】:2015-01-25 12:11:07
【问题描述】:

我有以下 XML 代码:

<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:inputType="numberDecimal"
    android:id="@+id/et1"
    android:autoText="false"
    android:text="40"
    android:layout_centerVertical="true"
    android:layout_toRightOf="@+id/radioGroup"
    android:width="20dp"
    android:layout_toStartOf="@+id/radioGroup2"
    android:layout_alignRight="@+id/textView"
    android:layout_alignEnd="@+id/textView" />

我想设置一个特定的宽度或最大宽度也可以解决问题(也不起作用)。文本字段从垂直中心到最右边,我希望它从垂直中心定位到右侧 20p。 当我设置 max_width 或 width 时,它似乎没有任何效果。我输入的内容没有区别。

知道为什么吗?感谢您的回答。

下面是活动的屏幕截图,后面是所有 XML 代码:

    <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:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:background="@drawable/bg"
        android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">


        <RadioGroup
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/radioGroup"
            android:layout_alignParentTop="true"
            android:layout_alignLeft="@+id/textView"
            android:layout_alignStart="@+id/textView"
            android:paddingTop="30dp"
            android:paddingLeft="5dp">

            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/rB2"
                android:id="@+id/radioButton2"
                android:checked="true"
                android:textColor="#000000" />

            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/rB1"
                android:id="@+id/radioButton1"
                android:checked="false"
                android:textColor="#000000"
                android:layout_below="@+id/radioGroup"
                android:layout_alignRight="@+id/radioGroup"
                android:layout_alignEnd="@+id/radioGroup" />
        </RadioGroup>

        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:inputType="numberDecimal"
            android:id="@+id/et1"
            android:autoText="false"
            android:text="40"
            android:layout_centerVertical="true"
            android:layout_toRightOf="@+id/radioGroup"
            android:width="20dp"
            android:layout_toStartOf="@+id/radioGroup2"
            android:layout_alignRight="@+id/textView"
            android:layout_alignEnd="@+id/textView" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="@string/tV1"
            android:id="@+id/textView"
            android:textSize="13dp"
            android:textColor="#000000"
            android:layout_below="@+id/radioGroup"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="112dp" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="@string/result"
            android:id="@+id/textView2"
            android:layout_marginBottom="45dp"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:textColor="#000000" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/explan"
            android:id="@+id/textView3"
            android:textColor="#000000"
            android:paddingLeft="20dp"
            android:layout_below="@+id/et1"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="73dp" />

        <RadioGroup
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/radioGroup2"
            android:layout_alignParentTop="true"
            android:layout_alignRight="@+id/textView"
            android:layout_alignEnd="@+id/textView"
            android:paddingTop="30dp"
            android:paddingRight="5dp">

            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="5% bonus"
                android:id="@+id/radioButton3"
                android:checked="false"
                android:textColor="#000000"
                android:layout_alignParentTop="true"
                android:layout_alignLeft="@+id/radioButton4"
                android:layout_alignStart="@+id/radioButton4" />

            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="10% bonus"
                android:id="@+id/radioButton4"
                android:layout_gravity="right"
                android:checked="true"
                android:textColor="#000000"
                android:layout_alignTop="@+id/radioButton1"
                android:layout_toRightOf="@+id/textView2"
                android:layout_toEndOf="@+id/textView2" />
        </RadioGroup>

    </RelativeLayout>

【问题讨论】:

  • 你能不能显示一下你的活动页面截图
  • 我添加了截图
  • 尝试删除您指定的宽度 20 dp 并将 layout_width 设置为 match_parent
  • 遗憾的是没有区别

标签: android xml android-edittext


【解决方案1】:

android:layout_width="wrap_content" 更改为match_parent 或者也可以手动设置宽度如"50dp""100dp"

【讨论】:

  • 将其设置为 match_parent 似乎也没有什么不同
【解决方案2】:

请查看下面的代码可能对您有所帮助,否则请给我们您的完整 xml 代码。

<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:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"

android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">


<RadioGroup
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/radioGroup"
    android:layout_alignParentTop="true"
    android:layout_alignLeft="@+id/textView"
    android:layout_alignStart="@+id/textView"
    android:paddingTop="30dp"
    android:paddingLeft="5dp">

    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="rB2"
        android:id="@+id/radioButton2"
        android:checked="true"
        android:textColor="#000000" />

    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="rB1"
        android:id="@+id/radioButton1"
        android:checked="false"
        android:textColor="#000000"
        android:layout_below="@+id/radioGroup"
        android:layout_alignRight="@+id/radioGroup"
        android:layout_alignEnd="@+id/radioGroup" />
</RadioGroup>

<LinearLayout android:id="@+id/mylinearforedittext"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/textView"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:orientation="horizontal"
    android:weightSum="2"
    android:layout_marginTop="10dp"
    >
    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="numberDecimal"
        android:id="@+id/et11"
        android:autoText="false"
        android:text="40"
        android:ems="10"
        android:width="20dp"
        android:layout_weight="1"
        android:visibility="invisible"
        android:focusable="false"
        android:focusableInTouchMode="false" />
<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:inputType="numberDecimal"
    android:id="@+id/et1"
    android:autoText="false"
    android:text="40"
    android:ems="10"
    android:width="20dp"
    android:layout_weight="1" />
</LinearLayout>
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:text="tV1"
    android:id="@+id/textView"
    android:textSize="13dp"
    android:textColor="#000000"
    android:layout_below="@+id/radioGroup"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="112dp" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:text="result"
    android:id="@+id/textView2"
    android:layout_marginBottom="45dp"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:textColor="#000000" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="explan"
    android:id="@+id/textView3"
    android:textColor="#000000"
    android:paddingLeft="20dp"
    android:layout_below="@+id/mylinearforedittext"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="73dp" />

<RadioGroup
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/radioGroup2"
    android:layout_alignParentTop="true"
    android:layout_alignRight="@+id/textView"
    android:layout_alignEnd="@+id/textView"
    android:paddingTop="30dp"
    android:paddingRight="5dp">

    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="5% bonus"
        android:id="@+id/radioButton3"
        android:checked="false"
        android:textColor="#000000"
        android:layout_alignParentTop="true"
        android:layout_alignLeft="@+id/radioButton4"
        android:layout_alignStart="@+id/radioButton4" />

    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="10% bonus"
        android:id="@+id/radioButton4"
        android:layout_gravity="right"
        android:checked="true"
        android:textColor="#000000"
        android:layout_alignTop="@+id/radioButton1"
        android:layout_toRightOf="@+id/textView2"
        android:layout_toEndOf="@+id/textView2" />
</RadioGroup>

【讨论】:

  • 感谢所有帮助,我真的很感激。但是现在所有物体的位置似乎都发生了变化。可能考虑到它们是相对的。
  • 您刚刚拖放并为您的视图放弃了一些边距,您可以在您的 XML 设计模式下进行。
【解决方案3】:

您在 EditText 中使用:android:layout_toStartOf="@+id/radioGroup2",这意味着您的文本视图从您的 radioGroup2 从屏幕中间开始的位置开始。

您需要删除此行。

【讨论】:

  • 我相信 EditText 对象的末尾位于“输入标记...”字符串的末尾。我只能相对于其他对象设置 EditText 对象的结尾,但不能相对于屏幕宽度。如果这是可能的,它应该可以解决我的问题
【解决方案4】:

您是否执行了这些指示?

fill_parent/match_parent

android:gravity /layoutgravity
<EditText
    android:text="40"
    android:layout_width="match_parent" //imp :can use fill_parent too

    android:layout_height="wrap_content"
    android:inputType="numberDecimal"
    android:id="@+id/et1"
    android:autoText="false"
    android:layout_margin="150dp"  //use whichever dp you want


    android:layout_centerVertical="true"
    android:layout_toRightOf="@+id/radioGroup"
    android:width="20dp"
    android:layout_toStartOf="@+id/radioGroup2"
    android:layout_alignRight="@+id/textView"
    android:layout_alignEnd="@+id/textView" />

希望对你有帮助

【讨论】:

  • 这行得通,但它不再在屏幕上垂直居中
猜你喜欢
  • 1970-01-01
  • 2014-07-23
  • 2012-06-04
  • 1970-01-01
  • 2011-09-19
  • 2020-01-28
  • 2015-01-26
  • 1970-01-01
  • 2016-11-23
相关资源
最近更新 更多