安卓解决viewPager和scrollView和listView滑动冲突的问题

大家想想listView的实现方式 就是一个item一个item 添加到一个布局中,

那么LinearLayout可不可以像ListView 那样 往里面添加item  答案是可以的

我们先模拟listView 的LinearLayout类

public class LinearLayoutForListView extends LinearLayout {

private ListAdapter adapter;

private OnClickListener onClickListener = null;

private OnTouchListener onTouchListener = null;

/**

* 绑定布局

*/

public void bindLinearLayout() {

int count = adapter.getCount();

for (int i = 0; i < count; i++) {

View v = adapter.getView(i, null, null);

v.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));

v.setOnTouchListener(this.onTouchListener);

v.setOnClickListener(this.onClickListener);

v.setId(i);

addView(v, i);

}

Log.v("countTAG", "" + count);

}

public LinearLayoutForListView(Context context) {

super(context);

}

public LinearLayoutForListView(Context context, AttributeSet attrs) {

super(context, attrs);

// TODO Auto-generated constructor stub

}

/**

* 获取Adapter

*

* @return adapter

*/

public ListAdapter getAdpater() {

return adapter;

}

/**

* 设置数据

*

* @param adpater

*/

public void setAdapter(ListAdapter adpater) {

this.adapter = adpater;

bindLinearLayout();

}

/**

* 获取点击事件

*

* @return

*/

public OnClickListener getOnclickListner() {

return onClickListener;

}

/**

* 设置点击事件

*

* @param onClickListener

*/

public void setOnclickLinstener(OnClickListener onClickListener) {

this.onClickListener = onClickListener;

}

public OnTouchListener getOnTouchListener() {

return onTouchListener;

}

public void setOnTouchListener(OnTouchListener onTouchListener) {

this.onTouchListener = onTouchListener;

}

}

这就好比一个listView

使用的时候

<com.groupbuy.view.LinearLayoutForListView

android:id="@+id/linlistview"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:scrollbars="vertical"

android:orientation="vertical"

android:paddingLeft="5dp"

android:paddingRight="5dp"

android:paddingTop="3dp"

android:paddingBottom="30dp"

android:background="#ffFFFF">

</com.groupbuy.view.LinearLayoutForListView>

adapter 和平常listView 一样

设置adapter

LinearLayoutForListView mSetupList = (LinearLayoutForListView) findViewById(R.id.linlistview);

mSetupList.setOnclickLinstener(SetupListClickEvent);

mSetupList.setOnTouchListener(SetupListTouchEvent);

mSetupList.setAdapter(new MainListAdpter(this));

//触摸事件处理

View.OnTouchListener SetupListTouchEvent = new View.OnTouchListener() {

@Override

public boolean onTouch(View v, MotionEvent event) {

// TODO Auto-generated method stub

return false;

}

};

//点击事件处理

View.OnClickListener SetupListClickEvent = new View.OnClickListener()

{

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

int position = v.getId();

Intent intent=new Intent(HomeActivity.this,ShopDetail.class);

startActivity(intent);

}

};

ok  这样就可以避免冲突啦

<ScrollView

android:layout_width="fill_parent"

android:layout_height="wrap_content">

<LinearLayout

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:orientation="vertical"

>

<RelativeLayout

android:layout_width="fill_parent"

android:layout_height="200dp"

>

<android.support.v4.view.ViewPager

android:id="@+id/viewPager"

android:layout_width="fill_parent"

android:layout_height="match_parent" />

<LinearLayout

android:id="@+id/viewGroup"

android:layout_width="fill_parent"

android:layout_height="10dip"

android:layout_alignParentBottom="true"

android:layout_marginBottom="5dip"

android:layout_marginRight="10dip"

android:gravity="right"

android:orientation="horizontal" >

</LinearLayout>

</RelativeLayout>

<LinearLayout

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_marginTop="1dp"

android:background="@drawable/more_item_press"

>

<LinearLayout

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:background="@drawable/account_tab_bg"

android:orientation="horizontal" >

<TextView

android:id="@+id/My_checkin"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:layout_margin="8dp"

android:layout_weight="1"

android:gravity="center"

android:padding="10dp"

android:text="洗车"

android:textColor="#666666"

android:textSize="17sp" />

<TextView

android:id="@+id/My_comment"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:layout_margin="8dp"

android:layout_weight="1"

android:gravity="center"

android:padding="10dp"

android:text="补胎"

android:textColor="#666666"

android:textSize="17sp" />

<TextView

android:id="@+id/My_photo"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:layout_margin="8dp"

android:layout_weight="1"

android:gravity="center"

android:padding="10dp"

android:text="流动补胎"

android:textColor="#666666"

android:textSize="17sp" />

</LinearLayout>

</LinearLayout>

<com.groupbuy.view.LinearLayoutForListView

android:id="@+id/linlistview"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:scrollbars="vertical"

android:orientation="vertical"

android:paddingLeft="5dp"

android:paddingRight="5dp"

android:paddingTop="3dp"

android:paddingBottom="30dp"

android:background="#ffFFFF">

</com.groupbuy.view.LinearLayoutForListView>

</LinearLayout>

</ScrollView>

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-28 15:36:52

安卓解决viewPager和scrollView和listView滑动冲突的问题的相关文章

ScrollView 嵌套ListView 滑动冲突,与显示不全

import android.content.Context; import android.util.AttributeSet; import android.widget.ListView; /** * * @author jiarh *2014-8-14 */ public class UserListView extends ListView { public UserListView(Context context) { super(context); } public UserLis

[原创]本地解决ViewPager和Webview引起的滑动冲突问题

前言:毕业之后在高薪的后厂村互联网公司和生活工作平衡的体制内之间纠结了好久,最后选择了后者,毕竟后厂村只要有技术什么时候都能去,体制内基本上除了应届生这次机会基本上就再也进不去了,社招就算进去也没有编制.基于"面对两难选择时,选择没有体验过的那个"的原则,选择了体制,然后有幸被分配到了移动端开发的部门,以前积累的一点小知识算是没有浪费.负责的这个app每天有几千人用,虽然大家都在吐槽它速度慢,体验差,bug多,适配不友好--但是如果你是他的客户,你是不得不用的,因为--他管钱. 需求:

ScrollView 与ListView 滑动冲突完美解决

一.介绍ListView高度的设置方法 二.根据实际需求解决冲突问题 一.介绍ListView高度的设置方法 在ScrollView中使用ListView,ListView的高度会不正常. 方式一:在XML中写死  android:layout_width="match_parent" android:layout_height="120dp" 方式二:代码中设置固定高度(如果在运行过程中才能决定ListView高度) public void setHeight(i

scrollview 和 listview滑动冲突解决

http://blog.csdn.net/wanghao200906/article/details/51084975 http://www.cnblogs.com/shitianzeng/articles/2467533.html http://blog.csdn.net/zhaokaiqiang1992/article/details/38585547 http://blog.csdn.net/yaosongqwe/article/details/47311617 http://www.ji

android 布局 使用 viewPager 时,如何解决 和 子页面 长按滑动 冲突问题

使用 viewPager 时,如何解决 和 子页面 长按滑动 冲突问题. 我的问题原型: 这个问题,我相信遇到的人会比较少,我是在 一个 viewPager 中,其中 一个 fragment 中实现了长按滑动图片的功能,而发现它们两者的 onTouchEvent事件冲突. 尝试过的解决方法: 1----- 遇到这问题,首先是百度,百度到的方法有,自定义 viewPager,在里面重写    onTouchEvent  和 onInterceptTouchEvent,具体代码是下面,这种方法,我尝

ScrollView与ListView的冲突

众所周知ListView与ScrollView都具有滚动能力,对于这样的View控件,当ScrollView与ListView相互嵌套会成为一种问题: 问题一:ScrollView与ListView嵌套导致ListView显示不全面 问题二:ScrollView不能正常滑动 解决方式一: ScrollView+LinearLayout+ListView可以换成ScrollView+LinearLayout+LinearLayout,对于开发中,ScrollView所能滚动的样式形式各异,另外的话

解决ScrollView与ListView事件冲突

1,在最近做项目的时候使用ScrollView嵌套ListView的时候发现ListView的滑动效果失效,简单的网上搜索了一下,也就有了下面的解决方法,在ListView中设置事件的监听listview.OnTouchListener(),让父控件不影响子控件的事件 1 2 3 4 5 6 7 8 9 listView.setOnTouchListener(new OnTouchListener() {                             @Override        

浅谈android中的ListView合集系列之解决ScrollView和ListView嵌套冲突(一)

相信大家都已经可以熟练使用ListView和GridView,大神们估计都在使用RecyclerView了.如果还在使用ListView,你肯定有这样的一个深刻的感受,那就是在做一个APP的时候使用ListView和GridView很频繁,并且经常会遇到一个页面中除了有ListView或GridView可能还有一些其他的内容,但是可能内容很多,你第一时间就会想到让它整体滑动即可,那就是在总的布局外面包裹一个ScrollView.也就是出现了ScrollView中嵌套一个ListView的场景,或

解决viewpager+多个fragment+listview,listview展示内容高度不自适应出现多余空白问题

一.重写viewpager import android.content.Context; import android.support.v4.view.ViewPager; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; import android.widget.LinearLayout; import java.util.HashMap; import