这类问题如果细化到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