GridView设置横向滚动
来源:互联网 发布:2017七天网络阅卷查分 编辑:程序博客网 时间:2024/05/17 02:02
最近项目中需要使用到GridView,由于文字太长,内容多时竖直滚动GridView显得比较难看,于是找了一些资料发现可以实现GridView横向滚动。首先让GridView横向滚动需要HorizontalScrollView这个控件,例如:
main.xml布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<HorizontalScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scrollbars="none" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<GridView
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center" >
</GridView>
</LinearLayout>
</HorizontalScrollView>
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:background="#00ff00" />
<TextView
android:id="@+id/item_textview"
android:layout_width="100dp"
android:layout_height="20dp"
android:gravity="center" />
</LinearLayout>
上面是item的布局,比较简单,就是一个ImageView和TextView,然后是主要实现GridView的Adapter。
以下是Activity的实现方法。
- private GridView gridView;
- private LayoutInflater inflater;
- private List<String> dataList =new ArrayList<String>();
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- gridView = (GridView) this.findViewById(R.id.gridview);
- for (int i =0; i < 10; i++) {
- dataList.add("测试" + i);
- }
- inflater = (LayoutInflater) this
- .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- GridViewAdapter adapter = new GridViewAdapter();
- gridView.setAdapter(adapter);
- int size = dataList.size();
- DisplayMetrics dm = new DisplayMetrics();
- getWindowManager().getDefaultDisplay().getMetrics(dm);
- float density = dm.density;
- int allWidth = (int) (110 * size * density);
- int itemWidth = (int) (100 * density);
- LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
- allWidth, LinearLayout.LayoutParams.FILL_PARENT);
- gridView.setLayoutParams(params);
- gridView.setColumnWidth(itemWidth);
- gridView.setHorizontalSpacing(10);
- gridView.setStretchMode(GridView.NO_STRETCH);
- gridView.setNumColumns(size);
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- getMenuInflater().inflate(R.menu.activity_main, menu);
- return true;
- }
- final class GridViewAdapterextends BaseAdapter {
- @Override
- public int getCount() {
- return dataList.size();
- }
- @Override
- public Object getItem(int position) {
- return dataList.get(position);
- }
- @Override
- public long getItemId(int position) {
- return position;
- }
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- convertView = inflater.inflate(R.layout.gridview_item,null);
- TextView textView = (TextView) convertView
- .findViewById(R.id.item_textview);
- String str = dataList.get(position);
- textView.setText(str);
- return convertView;
- }
- }
- }
- GridView设置横向滚动
- gridview实现横向滚动
- GridView 横向滚动
- GridView横向滚动
- 【Android】GridView 横向滚动
- GridView 横向滚动
- GridView 横向滚动
- Android 横向列表GridView 实现横向滚动
- Android 横向列表GridView 实现横向滚动
- Android 横向列表GridView 实现横向滚动
- GridView添加横向滚动条
- Gridview单行横向滚动显示
- Android GridView实现横向滚动
- Android GridView实现横向滚动
- 横向滚动条的设置
- GridView产生纵向横向的滚动条
- GridView产生纵向横向的滚动条
- Android GridView 横向滚动 一行显示
- C++之POJ-6
- 第13周项目 1.3 3 下标 3 倍数
- iOS横竖屏解决方案
- 第十三周项目6-体验文件操作(热身-读入成绩,输出平均成绩、优秀人数、不及格人数)
- OMAP 达芬奇dsplink GPP与DSP数据交互的一种方案
- GridView设置横向滚动
- NSBezierPath 赛贝尔曲线画聊天泡泡
- 第十三周项目五字符串的操作(2)将str1和str2连接起来,仍存放在str1中
- 第十三周项目一(1):字符统计
- C++中拷贝构造函数
- java面试之内部类
- iOS—如何使用TestFlight进行Beta测试
- c++软件研发校招参考
- php的二进制安全