Dynamic height of TextView within a GridLayout

社会主义新天地 提交于 2019-11-27 03:27:30

问题


I have a problem using GridLayout using library compatibility (not tried without). I am using app:layout_gravity="fill_horizontal" instead of android:layout_gravity="fill_horizontal" but all the content inside the TextView is not displayed. In order to display everything, I have to set the height of the TextView "Title" but I want a dynamic height, not a set height.

Any idea?


回答1:


You have to set layout_width="0dp" and layout_gravity="fill_horizontal" for the TextView.

<TextView
    android:layout_width="0dp"
    android:layout_gravity="fill_horizontal" />

Please, see full example here: https://groups.google.com/d/msg/android-developers/OmH3VBwesOQ/ZOGR0SGvC3cJ or here: http://daniel-codes.blogspot.com/2012/01/gridlayout-view-clipping-issues.html




回答2:


Using TextView inside GridLayout is problematic, but there is a good way to use both together.

This is what the example layout looks like:

And this is the complete layout xml, the important lines are marked with ***.

<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:columnCount="3"              *   this example uses 3 columns
    android:orientation="horizontal" >   *** use "horizontal"

<TextView                                *   just a normal view
    android:layout_column="0"
    android:layout_row="0"
    android:background="#666666"
    android:text="A"
    android:textColor="#afafaf"
    android:textSize="60sp"
    android:textStyle="bold" />

<TextView                                *   this text will not be cut!
    android:layout_width="0dp"           *** important: set width to 0dp
    android:layout_height="wrap_content"
    android:layout_column="1"
    android:layout_columnSpan="2"        *   colspan does also work with this
    android:layout_gravity="fill_horizontal|bottom"        *** set to "fill*"!
    android:layout_row="0"
    android:text="This view has 2 columns. Lorem ipsum dolor sit amet, consetetur sadipscing elitr."
    android:textColor="#666666" />

</GridLayout>

Depending on your needs, also this combination will work:

    android:layout_width="0dp"
    android:layout_height="0dp"
    android:layout_gravity="fill"
    android:gravity="bottom"

Note that you don't have to use any namespace other than android for this to work.



来源:https://stackoverflow.com/questions/12239966/dynamic-height-of-textview-within-a-gridlayout

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!