今天在项目中使用HorizontalScrollView来实现动态添加子控件并且 居中的时候遇到了两个问题.
1 HorizontalScrollView的使用布局如下
<HorizontalScrollView
android:id="@+id/scrollView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="@dimen/bottom_img_left"
android:paddingRight="@dimen/title_bar_add_right"
android:layout_marginTop="@dimen/shop_detail_imgs_top"
android:layout_marginBottom="@dimen/shop_detail_imgs_top"
android:scrollbars="none">
<LinearLayout
android:id="@+id/activity_createvisit_gallery"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_gravity="center_horizontal"
/>
</HorizontalScrollView>
然后我在代码中动态的去给这个LinearLayout添加子控件并且居中,但此时会出现一个问题,当你添加的子view超过3个的时候会出现子viwe显示不完全的问题,比如你添加了4个view缺只能显示3个,添加6个只能显示4个.
2在网上查询了子view显示不全的解决方法.只在xml里面定义一个HorizontalScrollView,然后在代码中新建LinearLayout,然后再动态的去给这LinearLayout添加子view,经测试确实可以解决子view显示不全的问题,但是有时候会碰到这样的需求而,要求子view从中间开始显示,然后我在这种方法里找不到无法居中的实现方法 于是参考了另一篇文章.
解决方法如下:
修改你的xml布局即可 将我上述的xml修改如下即可
<HorizontalScrollView
android:id="@+id/scrollView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="@dimen/shop_detail_imgs_top"
android:layout_marginTop="@dimen/shop_detail_imgs_top"
android:paddingLeft="@dimen/bottom_img_left"
android:paddingRight="@dimen/title_bar_add_right"
android:scrollbars="none">
<LinearLayout
android:id="@+id/activity_createvisit_gallery"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
/>
</HorizontalScrollView>
亲测有效,希望能对各位有所帮助