为什么我不能在XML文件中使用fill_parent来设置EditText的宽度?
为什么我不能在XML文件中使用fill_parent来设置EditText的宽度?
当我在EditText的宽度上使用fill_parent时,AndroidStudio的自动填充功能会将其划掉。如果我仍然尝试使用它,它会通过将其抛出屏幕来搞乱EditText的定位。我只想要一个简单的文本字段,并在其旁边有一个占据剩余屏幕的输入文本字段。
以下是代码:
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.kristmiha.registrationtest.MainActivity"> android:id="@+id/headline1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_alignParentTop="true" android:gravity="center" android:text="@string/hello" android:textSize="32sp" /> android:id="@+id/headline2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_below="@+id/headline1" android:text="@string/register_here" android:gravity="center" android:textSize="24sp" /> android:id="@+id/tvFirstName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="名字" android:layout_below="@+id/headline2" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_marginTop="20dp" /> android:id="@+id/etFirstName" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/tvFirstName" android:layout_toRightOf="@+id/tvFirstName" android:layout_toEndOf="@+id/tvFirstName" /> 编辑:以下是文本字段的位置:
问题的原因是在EditText控件的布局中使用了fill_parent属性来设置宽度,但是这个属性在RelativeLayout布局中不起作用。解决方法是使用match_parent属性来替代fill_parent,或者将布局改为LinearLayout布局。
具体来说,在给EditText控件设置宽度的地方,将fill_parent属性改为match_parent即可解决这个问题。另外,也可以尝试将布局改为LinearLayout布局,因为在LinearLayout布局中,fill_parent属性可以正常工作。
以下是修改后的代码示例:
在上述代码中,将EditText控件的layout_width属性改为match_parent,即可解决无法使用fill_parent属性的问题。
另外,在RelativeLayout布局中也可以使用类似的方法解决这个问题。只需要将EditText控件的layout_width属性改为match_parent,并将layout_toRightOf和layout_toEndOf属性设置为TextView控件的id即可。
总结一下,无法在EditText的XML文件中使用fill_parent属性的原因是这个属性在RelativeLayout布局中不起作用。解决方法是使用match_parent属性来替代fill_parent,或者将布局改为LinearLayout布局。
在XML文件中,无法使用fill_parent
来设置EditText的宽度的原因是该属性已经被弃用,应该使用match_parent
代替。根据官方文档,在API Level 8之后,fill_parent
被废弃并被match_parent
取代。因此,为了解决这个问题,应该使用match_parent
来设置EditText的宽度。
以下是解决该问题的一个示例代码:
可以看出,match_parent
和fill_parent
实际上具有相同的作用,只是fill_parent
已经被弃用,并且在较新的Android版本中将被移除。因此,使用match_parent
可以解决这个问题。
但是,有用户提到在添加alignBaseline
属性后,位置出现了问题,似乎match_parent
和alignBaseline
不能一起使用。