关于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 ...
随机推荐
- CSS样式优化
一.css代码优化作用与意义 1.减少占用网页字节.在同等条件下缩短浏览器下载css代码时间,相当于加快网页打开速度2.便于维护.简化和标准化css代码让css代码减少,便于日后维护3.让自己写的cs ...
- [LintCode] Copy Books 复印书籍
Given an array A of integer with size of n( means n books and number of pages of each book) and k pe ...
- [CareerCup] 17.11 Rand7 and Rand5 随机生成数字
17.11 Implement a method rand7() given rand5(). That is, given a method that generates a random numb ...
- nfs基本配置
一.安装nfs: yum install nfs-utils rpcbind 创建共享目录:mkdir -p /XXX/export/ 修改配置文件:vim /etc/exports /XXX/exp ...
- web前端开发CSS命名规范参考
做为一个web前端工程师,每天接触HTML.css就像吃饭一样,但是作为一名合作.优秀的web前端工程师,对DIV+CSS命名还是有一定的规范的,本文整理了一份web前端开发中DIV+CSS各种命名规 ...
- Pl/Sql 导入dmp文件时窗口一闪而过
做如下设置: 点击“导入”,ok
- HTTP Error 500 - Server Error.
Error Details: The FastCGI process exited unexpectedly Error Number: -1073741819 (0xc0000005). Error ...
- Objective-c 代理模式(delegate)
Objective-c 代理模式(delegate) (2012-07-31 22:04:39) 转载▼ 标签: 杂谈 分类: iOS Objective-c 代理模式(delegate) 一 ...
- TestNG的一个不足之处
PS:本博客selenium分类不会记载selenium打开浏览器,定位元素,操作页面元素,切换到iframe,处理alter.confirm和prompt对话框这些在网上随处可见的信息:本博客此分类 ...
- gogo
Qixoe019uip netstat -apn|grep 808*cd /data/pkg/super-car-store./start 端口 jar包名 //是否查询连锁店数据 if(chainC ...