当前位置:首页 » 安卓系统 » android自定义gridview

android自定义gridview

发布时间: 2022-12-11 09:25:05

‘壹’ android中添加了一个GridView,在GridView中的每一个Item中,又有一个按钮,要给每一个按钮添加点击事件

请参考我以前写的一篇帖子,是给listview的,但好像不能使用button,最好把button换成imageview,反正imageview也是能点击的。你遇到这个问题是因为你给每一个item设置了事件,然后当你点击这个item的时候,里面的button被点中了。解决办法是继承view,写一个自定义的view,重写他的 setPressed 方法,这个方法里面判断它在点中的同时是不是父view也被点中了,如果父view也被点中的话,之间return,否则调用super的setpressed方法。这样就能使你的子view不在父view点中的时候获得事件。帖子在http://blog.csdn.net/huihuangui/article/details/6768629

‘贰’ Android Studio 如何在代码中动态添加GridView

DecorView 是android 界面的顶级View ,当前界面的整个即为DecorView。DecorView为FrameLayout,而DecorView 一般会包含一个竖直方向的LinearLayout。这个竖直方向的LinearLayout 一般分为两个部分(具体Android版本和主题有所不同),上部分为标题栏,下部分为内容栏,而内容栏的id 为 android.R.id.content, 内容栏也是FrameLayout,我们使用setContentView(),的布局加入的就是内容栏。
动态添加View 一般是添加在我们自己的布局文件里,而setContentView时加入的我们的布局是内容栏的第一个子View,所以我们需要获取到我们的布局对应的View。
####如何获取DecorView?
在Activity 中直接调用 getWindow().getDecorView()
####如何获取ContentView?
在Activity中调用
FrameLayout contentView = (FrameLayout)getWindow().getDecorView().findViewById(android.R.id.content);
或直接:
FrameLayout contentView = (FrameLayout)activity.findViewById(android.R.id.content);
####获取我们填充的布局
ViewGroup viewGroup = (ViewGroup)contentView.getChildAt(0);
####添加View

‘叁’ android listview里面能嵌套gridview吗

listview里面能嵌套listview,gridview等等你能想到的控件,至于赋值你需要在重写的Listview的Adapter里面把数据传递进来,然后把数据赋值给gridview的adapter就好了,gridview的子项点击监听事件也写在Listview的Adapter里面,不要想得太复杂了。

‘肆’ Android开发,如何用gridview自定义每行的列数不同

ListView里嵌GridView或者horizontal ListView.

‘伍’ 如何禁止Gridview上下滑动

在做拼图游戏的时候,拼图界面使用了Gridview,我不希望它可以滑动,但是SDK中没有相应的API或者XML属性来禁止Gridview滑动,怎么办呢?我们可以通过重写Gridview类的dispatchTouchEvent(MotionEvent ev)方法来禁止Gridview滑动。

1、自定义StationaryGridview类,扩展自android.widget.GridView类
2、重写dispatchTouchEvent方法

package com.went.Puzzle;

import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.GridView;

public class StationaryGridview extends GridView {
public GrapeGridview(Context context) {
super(context);
}

public GrapeGridview(Context context, AttributeSet attrs) {
super(context, attrs);
}

public GrapeGridview(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}

//重写dispatchTouchEvent方法禁止GridView滑动
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
if(ev.getAction() == MotionEvent.ACTION_MOVE){
return true;
}
return super.dispatchTouchEvent(ev);
}
}

3、在xml布局中引用StationaryGridview时记得包含包名
<com.went.Puzzle.StationaryGridview
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"
/>

‘陆’ 如何让安卓GridView中每个组件既包括图片,也包括textview和button

自定义gridview


java">staticclassViewHolder
{
publicImageViewimage;
publicTextViewtitle;
publicTextViewtime;
}



importjava.util.ArrayList;
importjava.util.List;
importandroid.content.Context;
importandroid.view.LayoutInflater;
importandroid.view.View;
importandroid.view.ViewGroup;
importandroid.widget.BaseAdapter;
importandroid.widget.ImageView;
importandroid.widget.TextView;

{
privateLayoutInflaterinflater;
privateList<GridItem>gridItemList;

publicGridItemAdapter(String[]titles,int[]images,String[]description,Contextcontext)
{
super();
gridItemList=newArrayList<GridItem>();
inflater=LayoutInflater.from(context);
for(inti=0;i<images.length;i++)
{
GridItempicture=newGridItem(titles[i],images[i],description[i]);
gridItemList.add(picture);
}
}
@Override
publicintgetCount()
{
if(null!=gridItemList)
{
returngridItemList.size();
}
else
{
return0;
}
}
@Override
publicObjectgetItem(intposition)
{
returngridItemList.get(position);
}
@Override
publiclonggetItemId(intposition)
{
returnposition;
}
@Override
publicViewgetView(intposition,ViewconvertView,ViewGroupparent)
{
ViewHolderviewHolder;
if(convertView==null)
{
convertView=inflater.inflate(R.layout.grid_item,null);
viewHolder=newViewHolder();
viewHolder.title=(TextView)convertView.findViewById(R.id.title);
viewHolder.image=(ImageView)convertView.findViewById(R.id.image);
viewHolder.time=(TextView)convertView.findViewById(R.id.description);
convertView.setTag(viewHolder);
}else
{
viewHolder=(ViewHolder)convertView.getTag();
}
viewHolder.title.setText(gridItemList.get(position).getTitle());
viewHolder.time.setText(gridItemList.get(position).getTime());
viewHolder.image.setImageResource(gridItemList.get(position).getImageId());
returnconvertView;
}

然后调用


gridView=(GridView)findViewById(R.id.gridview);
GridItemAdapteradapter=newGridItemAdapter(titles,images,description,this);
gridView.setAdapter(adapter);

‘柒’ 如何设置 android gridview 怎么设置 , 一些item可以点击,另外.....

这个要在代码中进行设置,基本上有两种方式:

  1. 在GridView所在的 activity(或者fragment)中, 找到该View,监听点击事件:


    gridView.setOnItemClickListener(newAdapterView.OnItemClickListener(){
    @Override
    publicvoidonItemClick(AdapterView<?>parent,Viewview,intposition,longid){
    //点击item触发,进行判断,如果需要处理点击,就进行处理,否则,什么也不做
    if(/*处理点击条件*/){
    //要做的事
    }
    }
    });
  2. 在自己写的GridView对应的适配器中(一般继承于BaseAdapter)的getView中进行判断,如果是需呀处理的item, 就调用setOnClickListener,并定义相应的点击事件,否则可以不绑定点击事件。

‘捌’ android GridView 如何设置为左右可滚动

GridView不支持左右滚动。

左右滚动的需求可考虑:

  1. 在外层加一个HorizontalScrollView, 不过这种滑动体验并不好,上下左右均可滑动,如果是斜着滑的时候,体验差。当然,如果你会自定义HorizontalScrollView把滑动区分为斜着上下滑和斜着左右滑,再把斜着上下滑的事件传递给子View也是可以的。

  2. 可以考虑Viewpager里加载多个GridView,这样GridView就可以一页一页的滑

‘玖’ android 里自定义view 填充GridView 的视图 可以吗

方法一:
通过inflater:

publicViewgetView(intposition,ViewconvertView,ViewGroupparent){

if(convertView==null){

LayoutInflaterinflater=(LayoutInflater)xxx.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

convertView=inflater.inflate(R.layout.main,null);

}//DoyourthingsreturnconvertView;

}

方法二:
通过代码创建,

publicViewgetView(intposition,ViewconvertView,ViewGroupparent){

if(convertView==null){

convertView=newMyView();

}//DoyourthingsreturnconvertView;

}

‘拾’ android ScrollView+GridView GridView不滚动

红色框框的代码为何要那样写?
另外,gridview内容超出了屏幕就可以滑动,加个ScrollView感觉没多大必要啊

热点内容
汽车安全配置哪些好 发布:2025-03-16 23:16:42 浏览:174
vcmfc源码 发布:2025-03-16 23:14:17 浏览:503
如何设置禁止访问服务器ip 发布:2025-03-16 23:14:07 浏览:499
linuxloadrunner 发布:2025-03-16 23:12:18 浏览:765
搭建fms服务器 发布:2025-03-16 23:11:27 浏览:978
代码编程图片 发布:2025-03-16 23:09:58 浏览:412
研发加密 发布:2025-03-16 23:09:51 浏览:609
哪些车有配置前后防撞钢梁 发布:2025-03-16 22:55:35 浏览:729
服务器怎么设置外网访问 发布:2025-03-16 22:53:03 浏览:186
安卓手机如何绕过缓存软件 发布:2025-03-16 22:35:16 浏览:243