需要具有可扩展列表视图的PullToRefershListView功能

时间:2015-01-08 06:47:16

标签: android expandablelistview pull-to-refresh

实际上我必须应用两个功能,第一个是拉动刷新视图,第二个是动画可扩展子列表视图。

当我点击列表项的按钮时,布局会从上到下再次出现,当我点击此按钮时,此布局会自下而上。我可以在ExpanableCells项目中看到这个功能。

我还需要在用户滚动列表视图时,我的列表会刷新。

对于这两个功能,我有两个项目PullToRefreshView库和ExpandableCells项目,但开发人员都以不同的方式应用ListView,我无法同时使用它们。我只能用它们。

任何人都申请他们,请帮助我。或者我必须从基地实施这两个。

1 个答案:

答案 0 :(得分:0)

你可以使用android提供的SwipeRefreshlayout,你需要支持库:android.support.v4.widget.SwipeRefreshLayout

您也可以像这样编写xml布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.expandablelistviewwithpultoreferesh.MainActivity" >

<android.support.v4.widget.SwipeRefreshLayout
    android:id="@+id/swipe_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ExpandableListView
        android:id="@+id/lvExp"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</android.support.v4.widget.SwipeRefreshLayout>

</RelativeLayout>

在MainActivity中,

ExpandableListAdapter listAdapter;
ExpandableListView expListView;
List<String> listDataHeader;
HashMap<String, List<String>> listDataChild;
private SwipeRefreshLayout swipeLayout;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    swipeLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_container);
    swipeLayout.setOnRefreshListener(this);
    swipeLayout.setColorScheme(android.R.color.holo_blue_bright,
            android.R.color.holo_green_light,
            android.R.color.holo_orange_light,
            android.R.color.holo_red_light);
    // get the listview
    expListView = (ExpandableListView) findViewById(R.id.lvExp);

让你的活动实现OnRefreshListener并添加未实现的方法,即

@Override
public void onRefresh() {
    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            swipeLayout.setRefreshing(false);
        }
    }, 5000);
}

实施的源(教程): 可扩展的ListView: - http://www.androidhive.info/2013/07/android-expandable-list-view-tutorial/

SwipeRefreshlayout: - http://antonioleiva.com/swiperefreshlayout/

注意:如果你想要一个动画的Expandable listView,请确保你有一个更新的Android SDK,你可以尝试这个只扩展ExpandableListview的库https://github.com/idunnololz/AnimatedExpandableListView