我有一个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的文本可能非常长,但它的长度确实无关紧要,如果它足够大以便滚动 - 文本的最后一行根本不可见。
可能是什么原因?
我阅读并尝试了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>
花了一个小时,所以我认为它可以帮助将来的人。
祝你今天愉快!