1. GridView ListView 的配置方法
*二者的配置步骤基本一致,因此只写出GridView的部署方法即可
1.定义GridView,其中需要注意的是两个属性,numColumns,verticalSpacing,numColums定义了GridView的列数,verticalSpacing定义了上下两列之间的间距
android:numColumns="3";
android:verticalSpacing="20dp";
2.定义每个GridView的布局,list_view_item.xml。需要根据项目的实际需求,对单个GridView布局进行定义,通常是一个ImageView加上一个TextView,线性垂直布局,不需要详述
3.获取GridView:
private GridView gvHome;
gvHome=(GridView)findViewById(R.id.gv_home);
4.定义需要在GridView中需要展示的Image以及对应的Text,可以分别定义为整形数组和字符串数组,注意Image和Text需要一一对应
String []mItem={//每个item对应的字符表示};
int []mPics={//图标的引用R.drawable....};
5.设置适配器Adapter
gvHome.setAdapter(new HomeAdapter);
6.定义HomeAdapter
class HomeAdapter extends BaseAdapter{
@Override
public int getCount() {
return mItems.length;
}
@Override
public Object getItem(int position) {
return mItems[position];
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view=View.inflate(HomeActivity.this,R.layout.home_list_item,null);
ImageView ivItem= (ImageView) view.findViewById (R.id.iv_item);
TextView tvItem= (TextView) view.findViewById (R.id.tv_item);
tvItem.setText(mItems[position]);
ivItem.setImageResource(mPics[position]);
return view;
}
}
滚动条的配置方法
本质上是为了解决无法获取焦点的问题。
方法一:
滚动条的本质上还是一个TextView,对其四个属性分别进行设置:
android:singleLine="true";
android:focusable="true";
android:focusableInTouchMode="true";
android:ellipsize="marquee";
方法二:
定义一个新的TextView,例如FocusedTextView,导入实现的必要方法,重新添加一个使之保持焦点的函数
**
* 表示有没有获取焦点
*
* 滚动条要运行,首先调用此函数判断是否有焦点,是true的话,滚动条才会有效果 所以我们不管实际上textview有没有焦点,
* 我们都强制返回true, 让滚动条认为有焦点
*/
public boolean isFocused() {
return true;
}
再搭配方法一中的singleLine和ellipsize即可以是滚动条滚动起来。