本文目录
- 怎样动态设置GridView的宽和高(Android)
- android gridview 怎样设置自动滚动到底部
- android中gridview里怎么添加button按钮啊
- android怎么获取GridView中的View控件
- android的gridview 怎么控制其高度
- android Gridview如何控制滑动速度或滑动距离
- 如何设置 android gridview 怎么设置 , 一些item可以点击,另外..
- android GridView怎么实现合并行或者达到同样的效果
怎样动态设置GridView的宽和高(Android)
以下两种方式都可以做到:
一、在xml布局文件中设置,wrap_content即表示根据gridView的内容自使用宽高,代码如下:
android:layout_width="wrap_content" android:layout_height="wrap_content"
二、在代码中动态设置,可以在对gridview赋值之后,计算gridview的宽高,然后进行设置:
int height = 20;//此处的高度需要动态计算 int width = 30;//此处的宽度需要动态计算 LinearLayout.LayoutParams linearParams =new LayoutParams(width, height);gridview.setLayoutParams(linearParams); //使设置好的布局参数应用到控件
需要注意的是:如果你的gridview是嵌套在ScrollView中,那么,你需要重写gridview控件,不然gridview只显示一行的问题(即高度不够),具体重写方式,可以参考下面代码:
/** * @author hnbcinfo * 自定义GridView控件,解决在ListView 或ScrollView中使用GridView导致GridView显示不全的问题 * 当前应用:时间轴中,图片显示 */public class GridViewForScrollView extends GridView { public GridViewForScrollView(Context context, AttributeSet attrs) { super(context, attrs); } public GridViewForScrollView(Context context) { super(context); } public GridViewForScrollView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int expandSpec = MeasureSpec.makeMeasureSpec( Integer.MAX_VALUE 》》 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec); } }
android gridview 怎样设置自动滚动到底部
今天就关于用GridView控件来实现滚动到底部加载更多数据一个效果实现的技术讲解: 1、ScrollView中嵌套GridView布局 2、ScrollView滚动到底部监听 3、数据加载,刷新适配器
android中gridview里怎么添加button按钮啊
代码如下:
主xml文件:
android:id="@+id/gv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:columnWidth="50dp"
android:stretchMode="columnWidth"
android:numColumns="auto_fit"
android:verticalSpacing="5dp"
android:horizontalSpacing="5dp"
android:gravity="center"
/》
显示格式(xml)
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp"
》
android:id="@+id/iv"
android:layout_width="60dp"
android:layout_height="60dp"
android:scaleType="fitXY"
/》
android:id="@+id/ll"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
》
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:paddingLeft="20dp"
android:gravity="center_horizontal"
/》
android:id="@+id/tv_price"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:paddingLeft="20dp"
android:gravity="center_horizontal"
/》
android:id="@+id/b_del"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="删除"
android:focusable="false"
android:layout_marginLeft="100dp"
/》
适配器(BasesAdapter)
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
// 获取item的layout
View view = LayoutInflater.from(context).inflate(R.layout.list_1, null);
// 从layout中获取控件
ImageView iv = (ImageView) view.findViewById(R.id.iv);
TextView tv_name = (TextView) view.findViewById(R.id.tv_name);
TextView tv_price = (TextView) view.findViewById(R.id.tv_price);
Button b_del = (Button) view.findViewById(R.id.b_del);
// 为控件绑定数据
Sword sword = data.get(position);
iv.setImageResource(sword.getImg());
tv_name.setText(sword.getName());
tv_price.setText(sword.getPrice());
b_del.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
data.remove(position); // 删除item
Adapter.this.notifyDataSetChanged(); // 刷新data
}
});
return view;
}
效果如图
android怎么获取GridView中的View控件
在Adpter里实现getview方法,在该方法里new一个view 等于super,getview();然后再用来TextView textview = (TextView)view.findviewbyid(R.id.textview)获取
android的gridview 怎么控制其高度
1,控制其控件的总体高度,可以通过布局直接设置layout_height,也可以动态赋值给他,但我相信楼主问的不是这个。2,控制每个单元的高度。由于gridview没有直接set单元高度的函数,而gridview是根据adapter动态生成的,所以一般在adapter的getView方法中得到(该方法返回的View的高度),在这里处理即可。
android Gridview如何控制滑动速度或滑动距离
写个程序就可以了,具体如下:1,定义一个类继承GridView,如下:public class SourcePanel extends GridView { public SourcePanel(Context context) { super(context); } public SourcePanel(Context context, AttributeSet attrs) { super(context, attrs); } public SourcePanel(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); }}注意:构造方法要将GridView中的三种构造全部写上,否则很可能出现解析xml文件异常的错误。2,在该类中重写dispatchTouchEvent()方法,如下: @Overridepublic boolean dispatchTouchEvent(MotionEvent ev) { if (ev.getAction() == MotionEvent.ACTION_MOVE) { return true; //禁止GridView滑动 }return super.dispatchTouchEvent(ev);}3,在布局文件(xml)中定义该控件时写全包名,如下(属性跟GridView控件属性一样,按需求自加): 《com.kz.steerwheel.view.SourcePanel android:id="@+id/sourcePanel" android:layout_width="match_parent" android:layout_height="match_parent" /》
如何设置 android gridview 怎么设置 , 一些item可以点击,另外..
这个要在代码中进行设置,基本上有两种方式:
在GridView所在的 activity(或者fragment)中, 找到该View,监听点击事件:
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView《?》 parent, View view, int position, long id) { //点击item触发,进行判断,如果需要处理点击,就进行处理,否则,什么也不做 if(/*处理点击条件*/){ //要做的事 } }});
在自己写的GridView对应的适配器中(一般继承于BaseAdapter)的getView中进行判断,如果是需呀处理的item, 就调用setOnClickListener,并定义相应的点击事件,否则可以不绑定点击事件。
android GridView怎么实现合并行或者达到同样的效果
GridView跟ListView都是比较常用的多控件布局,而GridView更是实现九宫图的首选!本文就是介绍如何使用GridView实现九宫图。GridView的用法很多,网上介绍最多的方法就是自己实现一个ImageAdapter继承BaseAdapter,再供GridView使用,类似这种的方法本文不再重复,本文介绍的GridView用法跟前文ListView的极其类似本文需要添加/修改3个文件:main.xml、night_item.xml、JAVA源代码。main.xml源代码如下,本身是个GirdView,用于装载Item: view plaincopyprint?《?xml version="1.0" encoding="utf-8"?》 ***隐藏网址*** android:id="@+id/gridview" android:layout_width="fill_parent" android:layout_height="fill_parent" android:numColumns="auto_fit" android:verticalSpacing="10dp" android:horizontalSpacing="10dp" android:columnWidth="90dp" android:stretchMode="columnWidth" android:gravity="center" /》 介绍一下里面的某些属性:android:numColumns="auto_fit" ,GridView的列数设置为自动android:columnWidth="90dp",每列的宽度,也就是Item的宽度android:stretchMode="columnWidth",缩放与列宽大小同步android:verticalSpacing="10dp",两行之间的边距,如:行一(NO.0~NO.2)与行二(NO.3~NO.5)间距为10dpandroid:horizontalSpacing="10dp",两列之间的边距。接下来介绍 night_item.xml,这个XML跟前面ListView的ImageItem.xml很类似: view plaincopyprint?《?xml version="1.0" encoding="utf-8"?》 《RelativeLayout ***隐藏网址*** android:layout_height="wrap_content" android:paddingBottom="4dip" android:layout_width="fill_parent"》 《ImageView android:layout_height="wrap_content" android:id="@+id/ItemImage" android:layout_width="wrap_content" android:layout_centerHorizontal="true"》 《/ImageView》 《TextView android:layout_width="wrap_content" android:layout_below="@+id/ItemImage" android:layout_height="wrap_content" android:text="TextView01" android:layout_centerHorizontal="true" android:id="@+id/ItemText"》 《/TextView》 《/RelativeLayout》 最后就是JAVA的源代码了,也跟前面的ListView的JAVA源代码很类似,不过多了“选中”的事件处理: view plaincopyprint? public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); GridView gridview = (GridView) findViewById(R.id.gridview); //生成动态数组,并且转入数据 ArrayList《HashMap《String, Object》》 lstImageItem = new ArrayList《HashMap《String, Object》》(); for(int i=0;i《10;i++) { HashMap《String, Object》 map = new HashMap《String, Object》(); map.put("ItemImage", R.drawable.icon);//添加图像资源的ID map.put("ItemText", "NO."+String.valueOf(i));//按序号做ItemText lstImageItem.add(map); } //生成适配器的ImageItem 《====》 动态数组的元素,两者一一对应 SimpleAdapter saImageItems = new SimpleAdapter(this, //没什么解释 lstImageItem,//数据来源 R.layout.night_item,//night_item的XML实现 //动态数组与ImageItem对应的子项 new String {"ItemImage","ItemText"}, //ImageItem的XML文件里面的一个ImageView,两个TextView ID new int {R.id.ItemImage,R.id.ItemText}); //添加并且显示 gridview.setAdapter(saImageItems); //添加消息处理 gridview.setOnItemClickListener(new ItemClickListener()); } //当AdapterView被单击(触摸屏或者键盘),则返回的Item单击事件 class ItemClickListener implements OnItemClickListener { public void onItemClick(AdapterView《?》 arg0,//The AdapterView where the click happened View arg1,//The view within the AdapterView that was clicked int arg2,//The position of the view in the adapter long arg3//The row id of the item that was clicked ) { //在本例中arg2=arg3 HashMap《String, Object》 item=(HashMap《String, Object》) arg0.getItemAtPosition(arg2); //显示所选Item的ItemText setTitle((String)item.get("ItemText")); } }