【问题标题】:Android fixed width EditText within TableRowTableRow中的Android固定宽度EditText
【发布时间】:2011-09-19 01:02:02
【问题描述】:

我完全无法在 TableRow 中获取固定宽度的 EditText 小部件。 我正在尝试以相同的宽度(大约 20dip)并排放置两个 EditText,但无论我尝试设置哪个属性并将第一个 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,如果回答了您的问题,请将答案标记为正确 :) 谢谢!

标签: android android-edittext


【解决方案1】:

我不知道 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,以确保视图看起来完全符合您的要求。这不是必需的,但知道它将占据屏幕宽度的百分比是一个很好的约定。

【讨论】:

  • 非常感谢您的回复,我对 EditText 进行了尝试,这是我要放置的组件,但它不起作用。老实说,我想我可能遗漏了一些非常基本的东西。我将回到教程并运行它们。不过感谢您的回复:)
  • 不确定为什么 Pheonixblade 将权重设置为 50,但如果您声明宽度 0 并按照您通常应该的方式使用权重(使用 1 或 2 等),那么它会显示相等的列宽。如果将宽度设置为fill_parent,那么TextView中的内容决定了列宽。
  • 我只是使用 100 作为 weightSum 作为标准,以确保我知道发生了什么,你可以使用任何你想要的重量。 :)
  • >Phoneixblade9- 它为我工作。我改变了我的应用程序布局设置,正如你所说。它工作我。谢谢。
  • 很高兴我能帮上忙,@SIVAKUMAR.J :)
【解决方案2】:

Based on this answer

将此属性添加到您的EditText

android:layout_weight="1"

为我工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-04
    • 2021-10-30
    • 1970-01-01
    • 2019-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    相关资源
    最近更新 更多