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