【问题标题】:How to make android EditText smaller than default in height?如何使 android EditText 的高度小于默认值?
【发布时间】:2015-05-31 19:54:03
【问题描述】:

如何让 android EditText 的高度小于默认值?

如果我改变高度,我看不到我的文字,但底部有多余的空白。

【问题讨论】:

  • This question is unlikely to help any future visitors,没错!访问量超过 4 万次。
  • 关闭的原因肯定是不对的,但我还是想看看一个例子,说明期望的行为是什么,当前的行为是什么,可能是截图。也许这些年来,提问的标准也有所提高。

标签: android android-edittext


【解决方案1】:

EditText 有一个默认的填充设置。

试试这个,

<EditText 
    android:text="Any Text" 
    android:layout_width="fill_parent" 
    android:layout_height="16dp" 
    android:padding="2dp"
    android:background="#FFF"
    android:textSize="10dp"
/>

【讨论】:

  • 这实际上让edittext变小了,但是当我点击它时,中间会有一条橙色的线。
  • @Jacky:这可以通过添加背景来处理。尝试使用属性 - android:background="#FFF" Best - 为背景指定一个基于 xml 的可绘制对象,它可以处理所有状态(如焦点)
  • 这似乎相当黑。一方面,您应该使用 sp 测量设置 textSize,而不是 dp。
  • @joel .. 只需使用背景.. android:background="#FFF"
【解决方案2】:

使用

android:textAppearance="?android:attr/textAppearanceSmallInverse"

如需进一步参考,请参阅:http://developer.android.com/guide/topics/ui/themes.html

【讨论】:

    【解决方案3】:

    我对那里的任何答案都不是很满意,尽管当它们结合起来时,它们大多包含正确解决方案的所有成分。但是,让我们首先确定问题所在。问题就像 bhatt4982 所​​说的填充,他已经提供了一个解决方案。将填充设置为您想要的任何内容。如果您还想要较小的字体,请执行 learn_andrd 建议或类似的操作

    style="@android:style/TextAppearance.Small.Inverse"
    

    现在,EditText 元素的宽度是正确的,并且字体大小与您的常规 TextView 相匹配。然而,颜色是相反的,因为浅灰色在白色背景上看起来不太好。这将我们带到了最后一个问题,即背景。您需要设置不同的背景,因为默认的 EditText 背景具有最小高度。该高度是元素当前高度的高度。 AFAIK Android 不支持缩小背景图像。您应该为 EditText 定义自己的背景 Drawable,它允许高度小于默认允许的高度。否则,无论您尝试为高度、填充或边缘设置什么,它都不会产生任何影响。

    附:您可能想知道为什么它们让您难以创建更小的 EditViews……也许这与这样一个事实有关,即使是这样,用手指将光标移动到特定的位置也很困难在 EditText 元素中的位置(比如在不删除所有内容的情况下修复错字)元素。如果您将文本变得更小,这将变得不可能。因此,您可能应该重新考虑它,您想要实现的目标,真正值得追求的东西,除非您只是试图减少填充。

    【讨论】:

      【解决方案4】:

      是否可以显式设置高度?

      如果是,请使用类似

      <EditText
          android:id="@+id/smallEditText"
          android:layout_width="wrap_content"
          android:layout_height="10dip"/>
      

      您可以通过在 XML 中使用 android:textSize 来减小字体大小。您还可以使控件可滚动。

      编辑:刚刚看到您的屏幕截图,您放置 EditText 的布局是什么?它可能正在为您的控件设置非显式布局规则。

      【讨论】:

      • 我用LinerLayout,实际上把我的文字字体变小并不能解决问题
      【解决方案5】:

      改变XML编辑文本这两个属性

       android:layout_height="15dp"
       android:textSize="12sp"
      

      【讨论】:

        猜你喜欢
        • 2010-10-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-19
        相关资源
        最近更新 更多