【Android】完美解决HorizontalScrollView和SwipeRefreshLayout放在一起报空指针的问题

本文探讨了如何处理HorizontalScrollView与SwipeRefreshLayout在Android应用中出现的滑动冲突问题,特别是在结合ViewPager使用时的解决方案。通过自定义Adapter和HorizontalScrollAdapter,以及调整滑动事件处理,可以避免空指针异常并实现流畅的滑动体验。
摘要由CSDN通过智能技术生成

这类问题如果细化到ViewPager和SwipeRefreshLayout方面,解决方法详见http://blog.csdn.net/u010386612/article/details/50548977

一般来说,HorizontalScrollView会选用一个Adapter,而且一般会用自定义的Adapter

我这里用的是我自己定义的HorizontalScrollAdapter

public abstract class BaseHorizontalAdapter
{
	private HorizontalScrollMenu mHorizontalScrollMenu;
	
	public abstract List<String> getMenuItems();

	public abstract List<View> getContentViews();
	
	public abstract void onPageChanged(int position,boolean visitStatus);
	
	public void setHorizontalScrollMenu(HorizontalScrollMenu horizontalScrollMenu)
	{
		mHorizontalScrollMenu=horizontalScrollMenu;
	}
	
	public void notifyDataSetChanged()
	{
		mHorizontalScrollMenu.notifyDataSetChanged(this);
	}
}

自定义的HorizontalScrollviewMenu,附上代码

public class HorizontalScrollMenu extends LinearLayout
{
	private BaseHorizontalAdapter mAdapter;
	private RadioGroup rg_items;
	private List<RadioButton> rb_items = new ArrayList<RadioButton>();
	private HorizontalViewPager vp_content;
	private Context mContext;
	private ColorStateList mColors;
	private int mBackgroundResId;
	private int mPaddingLeft = 20;
	private int mPaddingTop = 20;
	private int mPaddingRight = 20;
	private int mPaddingBottom = 20;
	private HorizontalScrollView hsv_menu;
	private boolean[] mVisitStatus; // 菜单访问状态
	private List<String> mItems; // 菜单名
	private List<View> mPagers; // 内容页
	private boolean mSwiped = true; // 是否可滑动

	public HorizontalScrollMenu(Context context)
	{
		this(context, null);
		// TODO Auto-generated constructor stub
	}

	public HorizontalScrollMenu(Context con
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值