Android: Gallery的adapter中getView方法被执行多次

项目中遇到一个奇怪的问题:为Gallery设置的adapter中的getView方法被调用多次

客户需求:一次只能滑动一格

参考资料:

http://stackoverflow.com/questions/4687370/gallery-scroll-one-image-at-a-time

http://stackoverflow.com/questions/6058609/android-gallerys-getview-returning-incorrect-position

Android
Adapter multiple getView

http://stackoverflow.com/questions/3196219/android-adapter-multiple-getview

android listview中getView重复被调用的问题  

getView被调用的次数取决于当前屏幕能显示的item的数量,显示一个item就调用一次。当listview的layout_height属性是wrap_content时,有可能造成listview无法计算高度,相应的需要显示的item数量就无法计算,造成getView多次被调用。

解决方案:

1:

在listview外面套一层RelativeLayout,将listview高度设置为fill_parent。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/RelativeLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@drawable/repeat_bg">

<ListView

android:id="@+id/friend_list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"

android:layout_weight="1"
android:cacheColorHint="#00000000"
android:divider="#CCCCCC"
android:fastScrollEnabled="true"
android:focusableInTouchMode="true" />

</RelativeLayout>

2:

在listview外面套一层 LinearLayout,将listview高度设置为0dip。

 


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#f3f3f3"
android:orientation="vertical" >

<ListView
android:id="@+id/requestObjLV"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:cacheColorHint="#00000000"
android:divider="#CCCCCC" />

</LinearLayout>

当ListView\GridView设置固定大小,就不会多次调用了~

时间: 2024-12-22 02:53:16

Android: Gallery的adapter中getView方法被执行多次的相关文章

getview-android Fragment 使用adapter时getView 方法不执行,在Activity下可以执行

问题描述 android Fragment 使用adapter时getView 方法不执行,在Activity下可以执行 在网上也看了很多相关文章了,还是没有解决,在Activity下使用此代码没有任何问题,数据可以显示,但是用了Fragment adapter的getView方法就一直不执行. 我觉得他们之间唯一的区别的就是context 和view 的不同,请大神指教 代码如下 public class BookSearchActivity extends Fragment { privat

android 怎样在adapter中改变所有item的部分布局?

问题描述 android 怎样在adapter中改变所有item的部分布局? 我想实现类似有道云笔记的笔记功能,点击某个item中的音频文件后,播放当前的音频文件,当前item的音频布局以进度条呈现,同时其它item(无论之前是否被点击播放过,也无论是否播放完过)全部重置为最初未被点击的状态,不知道我有没有把问题说清楚,有没有人做过这个啊?折腾一天了,实在没法了,求指点啊 解决方案 adapter中有个getItemViewType(int position)的方法,返回特定的type,然后构造

图片加载-OnScrollListener中的方法没有执行

问题描述 OnScrollListener中的方法没有执行 给一个girdview设置一个自定义的ArrayAdapter,该适配器同时实现了OnScrollListener接口,但是OnScrollListener中的onScroll() 以及在滑动gridview的时候onScrollStateChanged()都没有执行,自定义的ArrayAdapter中的geiView()执行正常,这段代码主要是现实从SD卡读取图片并显示在gridview中,代码如下: public class Pho

[Android]在Adapter的getView方法中绑定OnClickListener比较好的方法

以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/4146512.html    给ListView中每个item绑定点击事件的方法,比较常见的如下这种方式: 1 public View getView(int positon, View convertView, ViewGroup parent){ 2 if(null == convertView){ 3 convertView = LayoutInflate

getview方法不执行- android listview自定义adapter,getview方法不显示

问题描述 android listview自定义adapter,getview方法不显示 adapter的getCount值不为0,但是不执行getview方法,在ErrorLog中打印出来的log在下面贴出来了,希望路过的大牛们帮忙看看 解决方案 问题找到了,是我的listView的布局控件不正确,已经改好了 解决方案二: android listView 重写Adapter方法getView的性能优化问题 解决方案三: 空指针异常,找找在哪个位置. 解决方案四: log和问的错没什么关系 解

关于android gridview中getview方法的疑问

问题描述 我的gridview配置如下:<GridViewandroid:id="@+id/gridApps"android:paddingLeft="20.0dip"android:paddingTop="10.0dip"android:paddingRight="20.0dip"android:paddingBottom="10.0dip"android:layout_width="fi

Asp c# 如何在子页面中调用父页面中的方法或执行父页面中某个按键(Button)中的代码

问题描述 各位高手,有个问题求助,我搞了一天,也从网上查询了许久,找不到办法,请帮帮我.事由:我使用vs2010c#,ie8建网站,现有父页面A和子页面B.A页面(父页面):在A页面(A.aspx)有一个GridView网格Gridview_A,Gridview_A通过A页面上的按键Button_A_Click将表Table_A(Table_A放在Session["Table_A"]中)绑定,A页面(A.aspx)还有一个调用子页面B(B.aspx)的按键Button_AcallB_C

Android开发之ScrollView中嵌套ListView的解决方案

在工作中,曾多次碰到ScrollView嵌套ListView的问题,网上的解决方法有很多种,但是杂而不全.我试过很多种方法,它们各有利弊. 在这里我将会从使用ScrollView嵌套ListView结构的原因.这个结构碰到的问题.几种解决方案和优缺点比较,这4个方面来为大家阐述.分析.总结. 实际上不光是ListView,其他继承自AbsListView的类也适用,包括ExpandableListView.GridView等等,为了方便说明,以下均用ListView来代表. 一. 为什么要使用S

Android ListView适配器(Adapter)优化方法详解

Android ListView的优化,在做Android项目的时候,在用到ListView 界面及数据显示,这个时候如果资源过大,对项目来说,用户体验肯定是不好的,这里就对如何优化做了详细介绍: Adapter的作用就是ListView界面与数据之间的桥梁,当列表里的每一项显示到页面时,都会调用Adapter的getView方法返回一个View.想过没有? 在我们的列表有1000000项时会是什么样的?是不是会占用极大的系统资源? ListView的Adapter的作用如下图所示: 先看看下面