我不能说我以前有过这个问题,也许我只是需要一双新鲜的眼睛。以编程方式将视图添加到根 ScrollView 内的 LinearLayout 后,ScrollView 似乎不知道也不滚动。
下面,group
是LinearLayout的一个扩展,root
是XML布局里面的LinearLayout。
我的主要 XML 布局:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scroll_root"
style="@style/Standard.Fill" <!-- match_parent in both _width and _height -->
android:fillViewport="true">
<LinearLayout
android:id="@+id/base_group"
style="@style/BaseGroup" <!-- derived style from Standard.Fill -->
android:orientation="vertical" />
</ScrollView>
添加视图,例如:
for(int i = 0; i < 95; i++){
TextView kv = new TextView(this);
kv.setText("asdas as adsa");
// kvp is LayoutParams with match_parent and wrap_content
group.addView(kv, kvp);
}
root.addView(group, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
ScrollView 父级似乎不知道它的 LinearLayout 子级已扩展超出边界并且不滚动。我尝试了fillViewport
,layout_width
和layout_height
, requestLayout()
,invalidate()
等的变体但无济于事。
我可能会切换到 aListView
和适配器工作流程,但这对我来说仍然很奇怪。
我怎样才能让我的 ScrollView 父母醒来?