SherlockFragment拉动刷新

时间:2014-02-10 00:52:36

标签: android-listview actionbarsherlock pull-to-refresh viewswitcher

您如何使用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刷新不起作用,其他布局也不起作用。我希望你能帮助我们。

1 个答案:

答案 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);