我之前不能说我有这个问题,也许我只需要一双新眼睛。以编程方式将视图添加到根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()
等变体无效。
我可能会切换到ListView
和适配器工作流程,但这对我来说仍然很奇怪。
如何让我的ScrollView父级唤醒?