我需要在ScrollView的底部显示一个TextView,这样:
如果ScrollView内容的高度小于ScrollView的高度,则文本应位于ScrollView的底部
+============+
| content |
| |
+------------+
| w/space |
| |
+------------+
| footer txt |
+============+
如果ScrollView内容的高度大于ScrollView的高度,则文本应直接跟随内容。
+============+
| content |
| |
| |
| content |
| |
| |
| content |
+============+
: : \
: content : bottom edge of device
:------------:
: footer txt :
+------------+
我有一个程序化的解决方案,但它是一个繁琐的&我一直在寻找需要重新计算的极端情况。请求布局。
我是否可以仅使用XML实现此布局?
答案 0 :(得分:0)
它应该像在滚动视图布局下创建另一个布局来保存所有内容,然后在内容布局下粘贴页脚文本一样简单。
这是XML中的解决方案:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ScrollView
android:id="@+id/scrollView"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:id="@+id/scrollViewLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/contentLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<!-- PUT YOUR CONTENT IN THIS LAYOUT -->
</LinearLayout>
<TextView
android:id="@+id/footerText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="footer text"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
</ScrollView>
</LinearLayout>
如果您的所有内容都是统一的,那么您最好的选择是使用ListView并以编程方式设置TextView页脚:
listView.addFooterView(yourTextView);
答案 1 :(得分:0)
我偶然发现了2010年Romain Guy撰写的一篇博文,其中讨论了这个确切的问题以及如何解决它。
http://www.curious-creature.com/2010/08/15/scrollviews-handy-trick/
ScrollView应该具有属性android:fillViewport="true"
,并且ScrollView的子视图中要展开以填充空间的视图应该是唯一具有指定layout_weight
的视图。
我刚刚测试了这种方法,它按预期工作。