HorizontalScrollView嵌套GridView单行滚动的问题.求助
2个回答
展开全部
<HorizontalScrollView
android:id="@+id/hs_contact_scrollView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1.0"
android:fadingEdge="none"
android:scrollbars="none" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:gravity="center_vertical"
android:orientation="horizontal" >
<GridView
android:id="@+id/gv_selected_contacts"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_marginLeft="10.0dip"
android:layout_marginRight="10.0dip"
android:cacheColorHint="@null"
android:columnWidth="40.0dip"
android:fadingEdge="none"
android:horizontalSpacing="5.5dip"
android:listSelector="@android:color/transparent"
android:numColumns="9999999"
android:scrollbars="none"
android:stretchMode="none"
android:verticalSpacing="0.0dip" />
<ImageView
android:id="@+id/iv_new_contact"
android:layout_width="40.0dip"
android:layout_height="40.0dip"
android:layout_marginRight="10.0dip"
android:src="@drawable/contact_bottom_mid_add_bg" />
</LinearLayout>
</HorizontalScrollView>
因为我gridview里面的item是动态代码添加的。。
现在遇到问题了,就像scrollview里面嵌套listview一样。出现了显示不全的问题。
这个是宽度显示不全,我通过计算算出了item的宽度,累加重设了gridview的宽度,但是每个item之间的间距获取不到阿。这样计算出来的宽度就有误差了。。
如果gridview不设置间距又显得太密集。。求助各大神。。。。我怎么也获取不到间距..
下面是我计算的代码:
public static void setGridViewWidth(GridView gView){
ListAdapter adapter = gView.getAdapter();
int count = adapter.getCount();
int totalWidth = 0;
for (int i = 0; i < count; i++) {
View view = adapter.getView(i, null, gView);
LayoutParams params = view.getLayoutParams();
totalWidth += params.width;
}
LayoutParams params = gView.getLayoutParams();
params.width = totalWidth;
gView.setLayoutParams(params);
}
ps:不可以写死gridview宽度,因为我gridview后面跟了一个添加的小图标。我想要的效果是添加一项之后小图标就往后退一点,到达屏幕宽度的时候就出现滚动条。。
有种方法就是把间距也加进去每一个params.width,然后再告诉girdview一行有几个子就可以,这样排布出来的间距都是很清晰的。
android:id="@+id/hs_contact_scrollView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1.0"
android:fadingEdge="none"
android:scrollbars="none" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:gravity="center_vertical"
android:orientation="horizontal" >
<GridView
android:id="@+id/gv_selected_contacts"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_marginLeft="10.0dip"
android:layout_marginRight="10.0dip"
android:cacheColorHint="@null"
android:columnWidth="40.0dip"
android:fadingEdge="none"
android:horizontalSpacing="5.5dip"
android:listSelector="@android:color/transparent"
android:numColumns="9999999"
android:scrollbars="none"
android:stretchMode="none"
android:verticalSpacing="0.0dip" />
<ImageView
android:id="@+id/iv_new_contact"
android:layout_width="40.0dip"
android:layout_height="40.0dip"
android:layout_marginRight="10.0dip"
android:src="@drawable/contact_bottom_mid_add_bg" />
</LinearLayout>
</HorizontalScrollView>
因为我gridview里面的item是动态代码添加的。。
现在遇到问题了,就像scrollview里面嵌套listview一样。出现了显示不全的问题。
这个是宽度显示不全,我通过计算算出了item的宽度,累加重设了gridview的宽度,但是每个item之间的间距获取不到阿。这样计算出来的宽度就有误差了。。
如果gridview不设置间距又显得太密集。。求助各大神。。。。我怎么也获取不到间距..
下面是我计算的代码:
public static void setGridViewWidth(GridView gView){
ListAdapter adapter = gView.getAdapter();
int count = adapter.getCount();
int totalWidth = 0;
for (int i = 0; i < count; i++) {
View view = adapter.getView(i, null, gView);
LayoutParams params = view.getLayoutParams();
totalWidth += params.width;
}
LayoutParams params = gView.getLayoutParams();
params.width = totalWidth;
gView.setLayoutParams(params);
}
ps:不可以写死gridview宽度,因为我gridview后面跟了一个添加的小图标。我想要的效果是添加一项之后小图标就往后退一点,到达屏幕宽度的时候就出现滚动条。。
有种方法就是把间距也加进去每一个params.width,然后再告诉girdview一行有几个子就可以,这样排布出来的间距都是很清晰的。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-12-20
展开全部
这太抽象,你倒说说具体什么问题啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询