关于ScrollView和listview的冲突关于的滑动和宽度
listview和ScrollView嵌套有两个冲突,关于listview显示不全的问题和listview和scrollview的滑动冲突
自定义listview
package com.exmple.listscrow; import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.ListView; public class MyListView extends ListView { int mLastMotionY;
boolean bottomFlag; public MyListView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
//解决宽度的冲突
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { // 对height重新赋值
// heightMeasureSpec
// =
heightMeasureSpec = MeasureSpec.makeMeasureSpec(500/*
* Integer.MAX_VALUE
* >> 2
*/,
MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
解决滑动的冲突
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
getParent().requestDisallowInterceptTouchEvent(true);
return super.dispatchTouchEvent(ev);
} }
在主方法里贴以下代码,以下这个代码可以实现以下效果,当listview滑到底部的时候,
ScrollView会和listview实现连动
package com.exmple.listscrow; import java.util.ArrayList;
import java.util.List; import com.exaple.vo.Super; import android.R.fraction;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.ListView;
import android.widget.ScrollView;
import android.widget.Toast; public class MainActivity extends Activity implements OnScrollListener {
String[] name = new String[] { "陈克", "陈多多", "张小杰", "张杰", "宋静萌", "郑芳蓓",
"杨洋", "谢娜", "刘忠杰", "天下", "走路去纽约", "一切都值得", "最美的太阳", "我们都一样",
"娜样纯洁的爱恋", "一切都值得", "最美的太阳", "我们都一样", "娜样纯洁的爱恋" };
String[] price = new String[] { "1", "1", "1", "1", "1", "1", "1", "1",
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1" };
private List<Super> list;
boolean island;
private MyListView listview;
private ScrollView sc; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listview = (MyListView) findViewById(R.id.listview);
sc = (ScrollView) findViewById(R.id.sc);
getData();
Apap ap = new Apap(list, MainActivity.this);
listview.setAdapter(ap);
listview.setOnScrollListener(this);
//不用自定义listview时用
/*listview.setOnTouchListener(new OnTouchListener() { @Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == 2) {
sc.requestDisallowInterceptTouchEvent(true);
} else {
sc.requestDisallowInterceptTouchEvent(false); }
return false;
}
});
*/
// listview.getParent().requestDisallowInterceptTouchEvent(false);
} public List<Super> getData() {
list = new ArrayList<Super>(); for (int i = 0; i < name.length; i++) {
Super super1 = new Super();
super1.setName(name[i]); list.add(super1); }
return list;
} //
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
if (island && scrollState == OnScrollListener.SCROLL_STATE_TOUCH_SCROLL) {
Toast.makeText(MainActivity.this, "kaisjia", 0).show();
sc.requestDisallowInterceptTouchEvent(false); } } @Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) { island = (firstVisibleItem + visibleItemCount) == totalItemCount; }
}
关于ScrollView和listview的冲突关于的滑动和宽度的更多相关文章
- [Android] Android最简单ScrollView和ListView滚动冲突解决方案
[Question]问题描述: 单独的ListView列表能自动垂直滚动,但当将ListView嵌套在ScrollView后,会和ScrollView的滚动滑块冲突,造成ListView滑块显示不完整 ...
- ScrollView与ListView的冲突
众所周知ListView与ScrollView都具有滚动能力,对于这样的View控件,当ScrollView与ListView相互嵌套会成为一种问题: 问题一:ScrollView与ListView嵌 ...
- 解决ScrollView与ListView事件冲突
1,在最近做项目的时候使用ScrollView嵌套ListView的时候发现ListView的滑动效果失效,简单的网上搜索了一下,也就有了下面的解决方法,在ListView中设置事件的监听listvi ...
- ScrollView和ListView的冲突问题
在ScrollView添加一个ListView会导致listview控件显示不全,这是因为两个控件的滚动事件冲突导致.所以需要通过listview中的item数量去计算listview的显示高度,从而 ...
- Android ScrollView与ListView的冲突解决办法汇总
1. public void setListViewHeight(){ ListAdapter listadapter = lv.getAdapter(); if (listadapter == n ...
- ScrollView和listview的冲突问题,关于宽度,和滑动
只需要重新listview即可 package com.exmple.listscrow; import java.util.logging.LogManager; import android.co ...
- Android布局中ScrollView与ListView的冲突的最简单方法
看到网上流行的一种使用方法是: public class Utility { public static void setListViewHeightBasedOnChildren(ListView ...
- ScrollView 嵌套ListView 幻灯冲突,和显示不全
import android.content.Context; import android.util.AttributeSet; import android.widget.ListView; /* ...
- android 有弹性的ScrollView 简单实现,与处理ScrollView和ListView,GridView之间的冲突
处理ScrollView和ListView,GridView之间的冲突, 最好的办法就是继承这两个类,重写他们的onMeasure方法即可: ListView: import android.widg ...
随机推荐
- HTML5 表单属性
form 属性 form 属性规定输入域所属的一个或多个表单. 注释:form 属性适用于所有 <input> 标签的类型. form 属性必须引用所属表单的 id: 实例 <for ...
- ArcGIS Javascript 异常之No 'Access-Control-Allow-Origin' header
本文只描述现象与处理措施,不讨论原理. 开发过程中遇到此异常,查询后网上说是跨域访问的问题,给出的解决方案是通过JQuery的跨域访问机制来解决, 难道我需要直接找ArcGISTiledMapServ ...
- c# winform进入窗口后在文本框里的默认焦点
c# winform 设置winform进入窗口后在文本框里的默认焦点 进入窗口后默认聚焦到某个文本框,两种方法: ①设置tabindex 把该文本框属性里的tabIndex设为0,焦点就默认在这 ...
- background-size扫盲
contain,按比例调整背景图片,使得其图片宽高比自适应整个元素的背景区域的宽高比,因此假如指定的图片尺寸过大,而背景区域的整体宽高不能恰好包含背景图片的话,那么其背景某些区域可能会有空白. cov ...
- .net 实现Office文件预览,word文件在线预览、excel文件在线预览、ppt文件在线预览
转自源地址:http://www.cnblogs.com/GodIsBoy/p/4009252.html,有部分改动 使用Microsoft的Office组件将文件转换为PDF格式文件,然后再使用pd ...
- html 前端 总结(一)
前端 html 总结(一) 基础部分:计算机原理 a: 是由运算器 控制器 内存组成储存器包括内存.外村外存 硬盘内存 由外村调入到内存执行输入——内存——cpu 运算 cpu运算——内存——输出设备 ...
- 5_STL设计理念_迭代器
他山之石,可以攻玉. http://blog.csdn.net/jxh_123/article/details/30793397?utm_source=tuicool&utm_medium=r ...
- github标记
<template> <a href="https://github.com/lmk123/Runner" class="github-corner&q ...
- 在win7下安装unbuntu系统
1.分盘 准备EasyBCD,ubuntu操作系统 配置EasyBCD,安装ubuntu http://www.linuxidc.com/Linux/2014-04/100369.htm http:/ ...
- C++产生随机数四则运算
产生两位随机整数,随机四则运算符,生成30道运算题. 一.编程思路 看到要求,首先想到的是怎么运用随机数,因为自己对随机数的不熟练所以还要在查很多东西.在一个for循环内先产生两个30以内的随机数,在 ...