Android 4.1.0。
我在其中有一个水平滚动视图 - LinearLayout
。
在LinearLayout中,我在片段onResume
中以编程方式添加了一些子项。
如果儿童适合视野,一切都很好。
如果孩子不适合视图,HorizontalView
会隐藏左边的第一个 n 元素,并为右边的n个元素保留空闲空间。
我尝试拨打computeScroll
或requestLayout
/ forceLayout
,但没有帮助。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<HorizontalScrollView
android:id="@+id/productListScroll"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/productListLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="5dp"
android:orientation="horizontal"
android:paddingBottom="10dp"
android:paddingLeft="10dp"
android:paddingTop="10dp" />
</HorizontalScrollView>
...
</LinearLayout>
和片段中的代码:
public void onResume() {
super.onResume();
productsPanel.removeAllViews();
for (Product product : currentOrder.getProductList()) {
productsPanel.addView(new ...); //view with calculated height and width
productsPanel.addView(new ...); //view with fixed width and height = MATCH_PARENT
}
}
答案 0 :(得分:8)
<HorizontalScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal">
<LinearLayout android:id="@+id/top_buttons"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<!-- Lots of items -->
</LinearLayout>
</HorizontalScrollView>
这是问题。如果为内部容器设置android:layout_gravity="center_horizontal"
,则水平滚动视图会隐藏其子项。
链接是here
答案 1 :(得分:3)
通过设置线性布局layout_gravity=left
,gravity=center
解决了这个问题。
我还将视图创建代码移到了onActivityCreated
,但我认为它没有帮助解决这个问题。