Android 根据文本视图宽度设置LinearLayout中的编辑文本宽度
我有以下代码片段。水平Android 根据文本视图宽度设置LinearLayout中的编辑文本宽度,android,view,textview,android-edittext,android-linearlayout,Android,View,Textview,Android Edittext,Android Linearlayout,我有以下代码片段。水平线性布局中只有一个EditText和TextView。我想根据TextView宽度设置EditText宽度。如果TextView的宽度意味着文本增加,则需要调整EdiText宽度 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="ma
线性布局中只有一个EditText
和TextView
。我想根据TextView
宽度设置EditText
宽度。如果TextView
的宽度意味着文本增加,则需要调整EdiText
宽度
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/titleLinearLayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#224386"
android:orientation="horizontal"
android:padding="5dp" >
<EditText
android:id="@+id/titleEditText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0.1"
android:background="@drawable/gradient_edittext"
android:ellipsize="end"
android:gravity="right|center_vertical"
android:singleLine="true" />
<TextView
android:id="@+id/titleTextView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0.1"
android:gravity="right"
android:text="Name"
android:textColor="#FFFFFF"
android:textSize="16dp" />
</LinearLayout>
</LinearLayout>
提前谢谢你。如果我是你,我会使用相对布局
而不是线性布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<RelativeLayout
android:id="@+id/titleLinearLayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#224386"
android:padding="5dp" >
<TextView
android:id="@+id/titleTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:gravity="right"
android:text="Name"
android:textColor="#FFFFFF"
android:textSize="16dp" />
<EditText
android:id="@+id/titleEditText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_toLeftOf="@id/titleTextView"
android:background="@drawable/gradient_edittext"
android:ellipsize="end"
android:gravity="right|center_vertical"
android:singleLine="true" />
</RelativeLayout>
</LinearLayout>
它将精确地产生你想要的输出
还要注意,将gravity
设置为TextView
是无用的,因为它会包装其内容。这同样适用于EditText
的center\u-vertical
值,因为它也按高度包装其内容。只需使用RelativeLayout而不是LinearLayout。然后将textView设置为右侧,将editText设置为textView的左侧
<?xml version="1.0" encoding="utf-8"?>
它必须是线性布局吗
还是可以使用RelativeLayout
?
<RelativeLayout
android:id="@+id/titleLinearLayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#224386"
android:padding="5dp" >
<TextView
android:id="@+id/titleTextView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Name"
android:layout_alignParentRight="true"
android:textColor="#FFFFFF"
android:textSize="16dp" />
<EditText
android:id="@+id/titleEditText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_toLeftOf="@+id/titleTextView"
android:background="@drawable/gradient_edittext"
android:ellipsize="end"
android:layout_marginRight="10dip"
android:singleLine="true" />
</RelativeLayout>