【问题标题】:How to increase or decrease an Android Text-views size based on it's contents?如何根据内容增加或减少 Android 文本视图的大小?
【发布时间】:2012-03-19 20:47:08
【问题描述】:

Width + wrap_content 与我的布局中的其他单行 TextView 配合得很好。但是,我的多行 TextView 既不会缩小也不会增长以适应其中的数字。理想情况下,我希望视图将其高度和宽度都包装起来以适应其中的内容。

TextViews 1-10(位于每个按钮顶部的 textViews)是单行的,可以按照我的意愿工作。它们会根据它们的大小进行扩展和收缩(按应有的方式包装到内容)。

TextViews 11-20 的大小是固定的,尽管具有相同的代码而不是多行,但不会缩小或扩大。 (他们在他们的字符串中使用 \n )。它们应该由垂直放置的 0 到 100 之间的两个数字组成。

界面

<?xml version="1.0" encoding="utf-8"?>

            <TextView android:id="@+id/textView1" android:layout_alignLeft="@+id/imageButton1" android:background="#000000" android:layout_width="wrap_content" android:text="0/0/0" android:layout_below="@+id/imageButton1" android:textAppearance="?android:attr/textAppearanceSmall" android:visibility="invisible" android:layout_height="wrap_content"></TextView>
    <TextView android:id="@+id/textView5" android:layout_alignLeft="@+id/imageButton5" android:background="#000000" android:layout_width="wrap_content" android:text="0/0/0" android:layout_above="@+id/imageButton5" android:textAppearance="?android:attr/textAppearanceSmall" android:visibility="invisible" android:layout_height="wrap_content"></TextView>
    <TextView android:id="@+id/textView7" android:background="#000000" android:layout_width="wrap_content" android:text="0/0/0" android:layout_above="@+id/imageButton7" android:textAppearance="?android:attr/textAppearanceSmall" android:visibility="invisible" android:layout_height="wrap_content" android:layout_alignParentLeft="true"></TextView>
    <TextView android:id="@+id/textView8" android:layout_alignBottom="@+id/textView3" android:background="#000000" android:layout_width="wrap_content" android:text="0/0/0" android:textAppearance="?android:attr/textAppearanceSmall" android:visibility="invisible" android:layout_height="wrap_content" android:layout_alignParentLeft="true"></TextView>
    <TextView android:id="@+id/textView9" android:background="#000000" android:layout_width="wrap_content" android:text="0/0/0" android:layout_below="@+id/imageButton9" android:textAppearance="?android:attr/textAppearanceSmall" android:visibility="invisible" android:layout_height="wrap_content" android:layout_alignParentLeft="true"></TextView>
    <TextView android:id="@+id/textView10" android:layout_alignLeft="@+id/imageButton10" android:background="#000000" android:layout_width="wrap_content" android:text="0/0/0" android:layout_below="@+id/imageButton10" android:textAppearance="?android:attr/textAppearanceSmall" android:visibility="invisible" android:layout_height="wrap_content"></TextView>
    <TextView android:id="@+id/textView6" android:layout_alignBottom="@+id/textView7" android:layout_alignLeft="@+id/imageButton6" android:background="#000000" android:layout_width="wrap_content" android:layout_alignBaseline="@+id/textView7" android:text="0/0/0" android:visibility="invisible" android:layout_height="wrap_content"></TextView>
    <TextView android:id="@+id/textView4" android:layout_alignBottom="@+id/textView5" android:layout_alignLeft="@+id/imageButton4" android:background="#000000" android:layout_width="wrap_content" android:layout_alignBaseline="@+id/textView5" android:text="0/0/0" android:visibility="invisible" android:layout_height="wrap_content" android:layout_marginLeft="-10dp"></TextView>
    <TextView android:id="@+id/textView3" android:layout_alignLeft="@+id/imageButton3" android:background="#000000" android:layout_width="wrap_content" android:text="0/0/0" android:layout_above="@+id/imageButton3" android:textAppearance="?android:attr/textAppearanceSmall" android:visibility="invisible" android:layout_height="wrap_content" android:layout_marginLeft="-10dp"></TextView>
    <TextView android:id="@+id/textView2" android:layout_alignBottom="@+id/textView1" android:layout_alignLeft="@+id/imageButton2" android:background="#000000" android:layout_width="wrap_content" android:layout_alignBaseline="@+id/textView1" android:text="0/0/0" android:textAppearance="?android:attr/textAppearanceSmall" android:visibility="invisible" android:layout_height="wrap_content" android:layout_marginLeft="-10dp"></TextView>


    <TextView android:id="@+id/textView11" android:visibility="invisible" android:background="#000000" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_alignParentTop="true" android:layout_toLeftOf="@+id/imageButton1" android:layout_toRightOf="@+id/nextHandButton" android:layout_above="@+id/textView1"></TextView>
    <TextView android:id="@+id/textView12" android:visibility="invisible" android:background="#000000" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_alignParentTop="true" android:layout_toLeftOf="@+id/imageButton2" android:layout_above="@+id/textView2" android:layout_alignLeft="@+id/textView2"></TextView>
    <TextView android:id="@+id/textView13" android:visibility="invisible" android:background="#000000" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_alignTop="@+id/imageButton3" android:layout_alignRight="@+id/textView12" android:layout_above="@+id/imageView4" android:layout_alignLeft="@+id/textView3"></TextView>
    <TextView android:id="@+id/textView14" android:visibility="invisible" android:background="#000000" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_alignParentBottom="true" android:layout_alignLeft="@+id/textView4" android:layout_alignTop="@+id/imageButton4" android:layout_toLeftOf="@+id/imageButton4"></TextView>
    <TextView android:id="@+id/textView15" android:visibility="invisible" android:background="#000000" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_below="@+id/textView5" android:layout_toLeftOf="@+id/imageButton5" android:layout_alignParentBottom="true" android:layout_alignLeft="@+id/textView11"></TextView>
    <TextView android:id="@+id/textView16" android:visibility="invisible" android:background="#000000" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_alignTop="@+id/imageButton6" android:layout_alignLeft="@+id/imageView6" android:layout_alignParentBottom="true" android:layout_toLeftOf="@+id/nextHandButton"></TextView>
    <TextView android:id="@+id/textView17" android:visibility="invisible" android:background="#000000" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_alignTop="@+id/imageButton7" android:layout_toRightOf="@+id/imageButton7" android:layout_alignParentBottom="true" android:layout_toLeftOf="@+id/textView6" android:layout_marginRight="50dp"></TextView>
    <TextView android:id="@+id/textView18" android:visibility="invisible" android:background="#000000" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_below="@+id/textView8" android:layout_toRightOf="@+id/imageButton8" android:layout_alignBottom="@+id/imageView7" android:layout_alignRight="@+id/textView17" android:maxLines="2"></TextView>
    <TextView android:id="@+id/textView19" android:visibility="invisible" android:background="#000000" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_alignParentTop="true" android:layout_toRightOf="@+id/imageButton9" android:layout_alignBottom="@+id/imageButton9" android:layout_alignRight="@+id/textView18"></TextView>
    <TextView android:id="@+id/textView20" android:visibility="invisible" android:background="#000000" android:layout_width="wrap_content" android:layout_alignParentTop="true" android:layout_alignLeft="@+id/imageView10" android:layout_alignBottom="@+id/imageButton10" android:layout_alignRight="@+id/textView16" android:layout_height="wrap_content" android:maxLines="2"></TextView>
</RelativeLayout>

【问题讨论】:

  • 请将您使用此 TextView 的整个 xml 布局放在下面,以便我们更准确地帮助您。
  • textView 1-10 可以按照我的意愿工作。它们是单行的,并根据其中数字的大小水平扩展或收缩。 textView 11-20 不会扩大或缩小以适应其中的数字。它们的大小是固定的,我不希望这样。除了使用 \n 字符串进行多行外,它们在各方面都是相同的。

标签: android xml android-layout android-relativelayout textview


【解决方案1】:

这里发生的事情是使用 Eclipse 拖放图形布局和 android 的相对布局而不是自己键入相对约束的结果。存在不必要的限制,例如:

android:layout_alignRight="@+id/textView18"

上述约束将阻止视图向右扩展。这些约束阻止宽度或高度环绕内容属性生效。如果您面临类似的问题,请仔细查看您的代码中的相对布局约束,这些约束可能会覆盖您的视图在您想要的方向上扩展或收缩的能力。

【讨论】:

    猜你喜欢
    • 2012-11-23
    • 2023-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-15
    • 2016-06-17
    • 2017-01-05
    • 2018-08-24
    相关资源
    最近更新 更多