當前位置:首頁 » 安卓系統 » 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感覺沒多大必要啊

熱點內容
linux上網代理 發布:2025-03-17 12:23:56 瀏覽:356
c是高級語言嗎 發布:2025-03-17 12:16:31 瀏覽:521
python泛型 發布:2025-03-17 12:15:01 瀏覽:480
編程貓被盜 發布:2025-03-17 12:02:18 瀏覽:130
海關鎖密碼箱如何設置新密碼 發布:2025-03-17 11:53:50 瀏覽:559
農業卡號的密碼在哪裡改 發布:2025-03-17 11:48:57 瀏覽:965
楊瀾超級訪問 發布:2025-03-17 11:47:17 瀏覽:237
資料庫無損連接 發布:2025-03-17 11:47:16 瀏覽:13
memcachephp類 發布:2025-03-17 11:40:04 瀏覽:829
哈夫曼編碼演算法實現 發布:2025-03-17 11:23:31 瀏覽:385