为什么我不能在XML文件中使用fill_parent来设置EditText的宽度?

8 浏览
0 Comments

为什么我不能在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" />

编辑:以下是文本字段的位置:

0
0 Comments

问题的原因是在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布局。

0
0 Comments

原因:在EditText的XML文件中使用fill_parent属性设置宽度时,无法实现预期效果。

解决方法:将fill_parent属性改为match_parent属性即可实现预期效果。修改后的代码如下:



    
    
    
    
    
    

以上修改后的代码可以达到与使用fill_parent属性相同的效果。

0
0 Comments

在XML文件中,无法使用fill_parent来设置EditText的宽度的原因是该属性已经被弃用,应该使用match_parent代替。根据官方文档,在API Level 8之后,fill_parent被废弃并被match_parent取代。因此,为了解决这个问题,应该使用match_parent来设置EditText的宽度。

以下是解决该问题的一个示例代码:



    
    

可以看出,match_parentfill_parent实际上具有相同的作用,只是fill_parent已经被弃用,并且在较新的Android版本中将被移除。因此,使用match_parent可以解决这个问题。

但是,有用户提到在添加alignBaseline属性后,位置出现了问题,似乎match_parentalignBaseline不能一起使用。

0