Android中TableRow内的固定宽度EditText

5
我完全陷入了在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>

Phil,请在回答解决了你的问题时将其标记为正确的答案 :) 谢谢! - Codeman
2个回答

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,两个TextView都填充了屏幕的50%。您可以尝试不同的百分比。您还可以使用LinearLayout作为占位符,其权重为您想要占用的任意百分比。

请确保您的“权重”总和为100,以确保视图看起来完全符合您的要求。这不是必要的,但知道它将占用屏幕宽度的百分比是一个好习惯。


非常感谢您的回复,我尝试了对于EditText组件的操作,但是它并没有起作用。我想我可能缺少一些非常基础的知识。我会重新回到教程中仔细学习。再次感谢您的回复 :) - Phil
不确定为什么Pheonixblade将权重设置为50,但如果您将宽度声明为0并按照通常的方式使用权重(例如1、2等),则会显示相等的列宽。如果将宽度设置为fill_parent,则TextView中的内容确定列宽。 - ryandlf
我只是将100作为weightSum的标准来确保我知道发生了什么,你可以使用任何你想要的权重。 :) - Codeman
Phoneixblade9- 对我有效。我按照您提到的方法更改了我的应用程序布局设置。现在它可以正常工作了。谢谢。 - SIVAKUMAR.J

6

根据这个答案

在你的 EditText 上添加这个属性:

android:layout_weight="1"

对我来说没问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接