android Gridview如何控制滑动速度或滑动距离?
最近在做个项目,gridview中有大量的Item,为了防止内存泄露,做了很多处理,但是在快速、频繁滑动测试时总会报内存泄露。一次一两行的滑动,并有操作的空闲时间的话就不...
最近在做个项目,gridview中有大量的Item,为了防止内存泄露,做了很多处理,但是在快速、频繁滑动测试时总会报内存泄露。一次一两行的滑动,并有操作的空闲时间的话就不会出现这种事情。
请问如何解决 展开
请问如何解决 展开
2个回答
展开全部
写个程序就可以了,具体如下:
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()方法,如下:
@Override
public 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"
/>
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()方法,如下:
@Override
public 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"
/>
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询