在下面发布的布局中,editText
总是拉伸到最后,即使我将其宽度限制为像30dp
我希望它不会延伸到最后,怎么能我这样做了
* XML代码:
<?xml version="1.0" encoding="utf-8"?>
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top|left"
android:orientation="horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left|center_vertical"
android:src="@android:drawable/alert_light_frame"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal|center_vertical"
android:text="roll: "/>
<EditText
android:layout_width="30dp"
android:layout_height="wrap_content"
android:gravity="start"
android:hint="E"
android:ems="6"/>
</TableRow>
答案 0 :(得分:0)
使用android:maxWidth
属性:
<EditText
android:layout_width="30dp"
android:layout_height="wrap_content"
android:gravity="start"
android:hint="E"
android:ems="6"
android:maxWidth="30dp"/>
答案 1 :(得分:0)
始终使用wrap_content而不是Edittext,Textview等中的任何值,并尝试使用&#34; sp&#34;而不是dp。请尝试以下代码:
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="start"
android:hint="E"
android:ems="6" />
永远不要在XML中定义表格布局中的表格行,更可取的方法是动态创建行,如下所示,请尝试以下代码。
TableLayout tl;
tl = (TableLayout) findViewById(R.id.mainTable)
tr = new TableRow(this);
label = new TextView(this);
label.setText("GFD");
label.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
label.setPadding(5, 5, 5, 5);
label.setBackgroundColor(Color.parseColor("#FF1493"));
LinearLayout Ll = new LinearLayout(this);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT);
params.setMargins(5, 5, 5, 5);
Ll.addView(label,params);
tr.addView((View)Ll);
tl.addView(tr, new TableLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));
答案 2 :(得分:0)
尝试将wrap_content
用于TableLayout
或TableRow
的宽度:
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top|left"
android:orientation="horizontal">