DrawerLayout側拉 和 xlistView 以及佈局

public class Frag01 extends Fragment {
    private String uri = "http://api.expoon.com/AppNews/getNewsList/type/1/p/";
    private XListView xListView;
    private ArrayList<JsonBean.DataBean> list = new ArrayList<JsonBean.DataBean>();
    private MyXlistAdapter adapter;
    private int n;

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.frag01, container, false);
        xListView = view.findViewById(R.id.listView);
        final DrawerLayout drawerLayout = view.findViewById(R.id.drawer);
        ListView listView = view.findViewById(R.id.clistView);
        //適配器
        adapter = new MyXlistAdapter(getActivity(), list);
        xListView.setAdapter(adapter);
        listView.setAdapter(adapter);
        //使用異步
        ybDate(0);
        //允許上拉
        xListView.setPullLoadEnable(true);
        //xlistView事件
        xListView.setXListViewListener(new XListView.IXListViewListener() {
            @Override
            public void onRefresh() {
                list.clear();
                ybDate(0);
                n = 0;
            }

            @Override
            public void onLoadMore() {
                n++;
                ybDate(n);
            }
        });
        //側拉監聽
        drawerLayout.addDrawerListener(new DrawerLayout.DrawerListener() {
            @Override
            public void onDrawerSlide(@NonNull View view, float v) {
                //正在拉的過程
            }

            @Override
            public void onDrawerOpened(@NonNull View view) {
                //打開的時候
            }

            @Override
            public void onDrawerClosed(@NonNull View view) {
                //關閉的時候
                Toast.makeText(getActivity(), "拉回", Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onDrawerStateChanged(int i) {
                //狀態改變的時候;
            }
        });

        //側拉條目點擊
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                //側拉回去
                drawerLayout.closeDrawers();//關掉drawerlayout
            }
        });

        return view;
    }

    private void ybDate(int s) {
        new MyAsyncTask().execute(uri + s);
    }

    //異步
    class MyAsyncTask extends AsyncTask<String, Void, String> {
        @Override
        protected String doInBackground(String... strings) {
            String netjson = NetWordUtils.getNetjson(strings[0]);
            return netjson;
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            //解析
            Gson gson = new Gson();
            JsonBean jsonBean = gson.fromJson(s, JsonBean.class);
            //添加到集合中
            list.addAll(jsonBean.getData());
            adapter.notifyDataSetChanged();

            uriRefresh();
        }

        //下拉刷新
        private void uriRefresh() {
            xListView.stopLoadMore();
            xListView.stopRefresh();
            xListView.setRefreshTime("剛剛");
        }
    }

}

//佈局

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/drawer"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.bwie.xlistviewlibrary.view.XListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"></com.bwie.xlistviewlibrary.view.XListView>


    <ListView
        android:id="@+id/clistView"
        android:layout_width="150dp"
        android:layout_height="match_parent"
        android:layout_gravity="left"
        android:background="#aadd"></ListView>
</android.support.v4.widget.DrawerLayout>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章