您如何使用Actionbar sherlock片段和ViewSwitcher实现chrisbanes Pull to Refresh Library?
我正在使用此代码
Main.java
// get an instance of FragmentTransaction from your Activity
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
//add fragment to LinearLayout(fragment_layout)
TemplateListActivity myFragment = new TemplateListActivity();
fragmentTransaction.add(R.id.fragment_layout, myFragment);
fragmentTransaction.commit();
SherlockFragment.java
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_template_list,
container, false);
vsSwitcher = (ViewSwitcher) view.findViewById(R.id.vsSwitcher);
lvNameList = (ListView) view.findViewById(R.id.lvNameList);
btnViewSwitcher = (Button) view.findViewById(R.id.button1);
btnViewSwitcher.setOnClickListener(this);
getList();
mPullToRefresh = (PullToRefreshLayout) view.findViewById(R.id.ptr_layout);
ActionBarPullToRefresh
.from(getSherlockActivity())
.allChildrenArePullable()
.listener(this)
.setup(mPullToRefresh);
return view;
}
SherlockFragment.xml
相对布局
>Linear layout >Button1 >Button2 >Button3 >uk.co.senab.actionbarpulltorefresh.extras.actionbarsherlock.PullToRefreshLayout >ViewSwitcher >Linear Layout >ListView >Linear Layout >Toggle Button
因此,当我运行代码时,pull to刷新不起作用,其他布局也不起作用。我希望你能帮助我们。
答案 0 :(得分:1)
好的,我将Viewgroup指向特定的布局
,从而得到了答案 View view = inflater.inflate(R.layout.fragment_template_list,
container, false);
ViewGroup viewGroup = (ViewGroup) view.findViewById(R.id.ptr_layout);
并插入pull以刷新到该视图组
mPullToRefresh = new PullToRefreshLayout(viewGroup.getContext());
ActionBarPullToRefresh
.from(getSherlockActivity())
.insertLayoutInto(viewGroup)
.theseChildrenArePullable(view.findViewById(R.id.lvNameList))
.listener(this)
.setup(mPullToRefresh);