//UI布局
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#ffffff">
<HorizontalScrollView
android:id="@+id/hsv_member"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#ffffff"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/rl_add"
android:minHeight="60dp"
android:scrollbars="none">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="horizontal">
<GridView
android:id="@+id/gv_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:cacheColorHint="#00000000"
android:columnWidth="60dp"
android:gravity="center"
android:horizontalSpacing="1.0dip"
android:listSelector="@color/transparent"
android:numColumns="auto_fit"
android:stretchMode="spacingWidthUniform"
android:verticalSpacing="1.0dip" >
</GridView>
</LinearLayout>
</HorizontalScrollView>
</RelativeLayout>
activity代码
<pre name="code" class="java">QunMemberAdapter adapter=new QunMemberAdapter(this, dataArray);
GridView gv_list = (GridView) topView.findViewById(R.id.gv_list);
ViewGroup.LayoutParams params = gv_list.getLayoutParams();
params.width = DensityUtils.dip2px(this, 61) * dataArray.length();
gv_list.setLayoutParams(params);
gv_list.setNumColumns(dataArray.length());
gv_list.setAdapter(adapter);
上面代码中61代表一个单元格的宽度60加上点间距
<pre name="code" class="java">DensityUtils.class
public final class DensityUtils {
/**
* 根据手机的分辨率从 dp 的单位 转成为 px(像素)
*/
public static int dip2px(Context context, float dpValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dpValue * scale + 0.5f);
}
}
这样就可以实现左右滑动了