TableRow中的Android固定宽度EditText

时间:2011-06-20 21:12:39

标签: android android-edittext

我完全不想尝试在TableRow中获取固定宽度的EditText小部件。 我试图将两个EditText并排放置相同的宽度(大约20dip),但无论我尝试哪个属性,并设置第一个EditText是很长的方式,显然无法调整大小。

非常感谢:

<TableRow 
  android:layout_height="wrap_content"
  android:baselineAligned="false" 
  android:id="@+id/tableRow3" 
  android:gravity="center"
  android:stretchColumns="1" 
  android:layout_width="match_parent">
  <TextView 
    android:id="@+id/textView6" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="1" 
    android:paddingLeft="36dip">
  </TextView>
  <EditText
    android:layout_height="wrap_content" 
    android:id="@+id/editText2" 
    android:inputType="number" 
    android:layout_width="20dip">
  </EditText>
  <EditText 
    android:layout_height="wrap_content" 
    android:id="@+id/editText1" 
    android:inputType="number"
    android:layout_width="wrap_content">
    <requestFocus></requestFocus>
  </EditText>
</TableRow>

2 个答案:

答案 0 :(得分:15)

我不知道TableLayout是最好的方法,除非你显示大量数据并且需要使用它,否则它会很麻烦。

我发现确保表单对象按照我想要的方式分布长度的最佳方法之一是使用权重而不是明确声明宽度。

尝试以下方法:

<LinearLayout ... android:orientation="horizontal" ... 
android:layout_width="match_parent" android:layout_height="wrap_content"
<TextView ... android:layout_width="0dp" ... android:layout_weight="50" />
<TextView ... android:layout_width="0dp" ... android:layout_weight="50" />
</LinearLayout>

确保将布局宽度声明为0,这将使布局填充到权重。

这应该在屏幕上彼此相邻创建两个TextView,两者都填满了屏幕的50%。你可以玩不同的百分比。您还可以使用LinearLayout作为占位符,其权重为您希望保留的百分比。

确保您的“权重”加起来为100,以确保视图看起来完全符合您的要求。这没有必要,但知道屏幕宽度的百分比是一个很好的习惯。

答案 1 :(得分:6)

Based on this answer

EditText上添加此属性:

android:layout_weight="1"

适合我。