NestedScrollView中的TextView被一个底线

时间:2018-03-29 14:23:41

标签: android textview height nestedscrollview

我有一个ViewPager项,如下所示:

<android.support.v4.widget.NestedScrollView 
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingTop="16dp"
    android:paddingLeft="@dimen/material_horizontal_margin"
    android:paddingRight="@dimen/material_horizontal_margin"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <TextView
        android:id="@+id/group_footer_pager_item_info"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="left"/>

</android.support.v4.widget.NestedScrollView>

TextView的文本可能非常长,但它的长度确实无关紧要,如果它足够大以便滚动 - 文本的最后一行根本不可见。

原因可能是什么?

1 个答案:

答案 0 :(得分:1)

我阅读并尝试了stackoverflow上的所有内容,包括这些帖子:

Android: Last line of textview cut off [1]

Android Textview text cut off at bottom [2]

TextView in List is cut off [3]

没有一个解决方案有效,除了Rubin Yoo的解决方案不是确切的,但来自[1]的类似问题。虽然我当时没有看到它,并且可能不会尝试它,因为情况完全不同,所以我继续搜索并找到了这个链接:

https://www.reddit.com/r/androiddev/comments/4c6ri4/long_text_in_a_nestedscrollview/

这是一个完美的打击。因此,正如规则中所要求的,这里是答案摘录:

  

将textview放在FrameLayout中 - @ samyboy89

我同意的可能解释是:

  

我认为这是滚动视图无法正确计算需要滚动的高度的问题。使用框架布局,它只获得框架布局的高度,这正确地计算出文本视图的高度。     - @Nintynien

所以工作布局是:

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

<android.support.v4.widget.NestedScrollView android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingTop="16dp"
    android:paddingLeft="@dimen/material_horizontal_margin"
    android:paddingRight="@dimen/material_horizontal_margin"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- FrameLayout is needed for the correct TextView's height
         calculation. As without it the last line would be cut off.-->
    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TextView
            android:id="@+id/group_footer_pager_item_info"
            style="@style/RobotoRegular.Black.Big"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="left"/>

    </FrameLayout>
</android.support.v4.widget.NestedScrollView>

花了一个小时,所以我认为它可以帮助将来的某个人。

度过美好的一天!