• 简单的界面开始


    rawerLayout是Library包中实现了侧滑菜单效果的控件,drawerLayout分为侧边菜单和主内容区两部分,侧边菜单可以根据手势展开与隐藏(drawerLayout自身特性),

    大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑

    一定要导入包

    大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑

    布局

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

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
            >
            <android.support.design.widget.TabLayout
                android:layout_width="match_parent"
                android:layout_height="45dp"
                app:tabMode="scrollable"
                android:id="@+id/tab_layout"
                >
            </android.support.design.widget.TabLayout>

            <android.support.v4.view.ViewPager
                android:id="@+id/viewPager"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@id/tab_layout"
                >
            </android.support.v4.view.ViewPager>

        </LinearLayout>

        <ListView
            android:id="@+id/left_lv"
            android:layout_width="240sp"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            android:choiceMode="singleChoice"
            android:divider="#191515"
            android:dividerHeight="1dp"
            android:background="#fff"
            />

    </android.support.v4.widget.DrawerLayout>

    大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑

    fragment.xml  里面写一个pullToRefreshListView

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <com.handmark.pulltorefresh.library.PullToRefreshListView
            xmlns:ptr="http://schemas.android.com/apk/res-auto"
            android:id="@+id/pull_refresh_list"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:cacheColorHint="#000000"
            android:divider="#19000000"
            android:dividerHeight="4dp"
            android:fadingEdge="none"
            android:fastScrollEnabled="false"
            android:footerDividersEnabled="false"
            android:headerDividersEnabled="false"
            android:smoothScrollbar="true"
            ptr:ptrAnimationStyle="rotate"
            ptr:ptrHeaderTextColor="#ffffff"
            ptr:ptrHeaderSubTextColor="#00ffff"
            ptr:ptrHeaderBackground="@null"
            ptr:ptrDrawable="@mipmap/ic_launcher"/>

    </LinearLayout>

    大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑

    下面是代码注释全自己看


    import android.support.design.widget.TabLayout;
    import android.support.v4.app.Fragment;
    import android.support.v4.app.FragmentPagerAdapter;
    import android.support.v4.view.ViewPager;
    import android.support.v4.widget.DrawerLayout;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.ListView;
    import com.bwie.adapter.MyAdapter;
    import com.bwie.fragment.TabFragment;
    import java.util.ArrayList;
    import java.util.List;


    public class SecondActivity extends AppCompatActivity {


        private TabLayout tabLayout;
        private ViewPager viewPager;
        private DrawerLayout drawerLayout;
        private List<String> mTitleList = new ArrayList<>();//导航集合
        private ListView lv;
        private List<String> list = new ArrayList<>();
        private ArrayList<TabFragment> fs;
        private String[] urls = {
                "http://gank.io/api/data/Android/10/1",
                "http://gank.io/api/data/Android/10/2",
                "http://gank.io/api/data/Android/10/3",
                "http://gank.io/api/data/Android/10/4",
                "http://gank.io/api/data/Android/10/5",
                "http://gank.io/api/data/Android/10/6",
                "http://gank.io/api/data/Android/10/7",
                "http://gank.io/api/data/Android/10/8",
                "http://gank.io/api/data/Android/10/9",
                "http://gank.io/api/data/Android/10/10",
        };
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_second);


            initData();
            initCehua();

        }


        private void initData() {

            tabLayout = (TabLayout) findViewById(R.id.tab_layout);
            viewPager = (ViewPager) findViewById(R.id.viewPager);
            tabLayout.setupWithViewPager(viewPager);  //tablayou 关联viewPager
            //标题集合添加数据
            mTitleList.add("头条");mTitleList.add("社会");mTitleList.add("国内");
            mTitleList.add("国际");mTitleList.add("娱乐");mTitleList.add("体育");
            mTitleList.add("军事");mTitleList.add("科技");mTitleList.add("财经");
            fs = new ArrayList<TabFragment>();


            for(int i=0;i<10;i++){
                TabFragment tf = new TabFragment();
                Bundle b = new Bundle();
                b.putString("url",urls[i]);
                tf.setArguments(b);
                fs.add(tf);
            }


            viewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
                @Override
                public Fragment getItem(int position) {


                    TabFragment tabfragment = fs.get(position);


                    return tabfragment;
                }


                @Override
                public int getCount() {
                    return mTitleList.size();
                }


                @Override
                public CharSequence getPageTitle(int position) {
                    return mTitleList.get(position);
                }
            });
        }

        private void initCehua() {


            drawerLayout= (DrawerLayout) findViewById(R.id.draw);
            lv= (ListView) findViewById(R.id.left_lv);
            list.add("搜索"); list.add("收藏"); list.add("消息");
            list.add("离线"); list.add("活动"); list.add("更多");


            MyAdapter adapter = new MyAdapter(SecondActivity.this,list);
            lv.setAdapter(adapter);


            lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {


                    drawerLayout.closeDrawer(lv);
                }
            });
        }
    }

    大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑

    创建一个Fragment "TabFragment"

    import android.os.AsyncTask;
    import android.os.Bundle;
    import android.support.annotation.Nullable;
    import android.support.v4.app.Fragment;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ListView;
    import android.widget.Toast;
    import com.bwie.adapter.MyBaseAdapter;
    import com.bwie.bean.SuperClassStudy;
    import com.bwie.myapplication.R;
    import com.bwie.utils.NetWorkUtils;
    import com.bwie.utils.URLDB;
    import com.google.gson.Gson;
    import com.handmark.pulltorefresh.library.PullToRefreshBase;
    import com.handmark.pulltorefresh.library.PullToRefreshListView;
    import java.util.List;

    public class TabFragment extends Fragment {


        private MyBaseAdapter myBaseAdapter;
        private List<SuperClassStudy.ResultsBean> results;
        private PullToRefreshListView mPullRefreshListView;
        private String url = "";
        @Nullable
        @Override
        public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {


            View view = inflater.inflate(R.layout.fragment,container,false);

            mPullRefreshListView = (PullToRefreshListView) view.findViewById(R.id.pull_refresh_list);
            Bundle bundle = getArguments();
            url= bundle.getString("url");


            //加载utl对应的json数据,解析,展示在ListView上
            initView();
            initData();
            return view;
        }
        public void initData() {

            new AsyncTask<String,Integer,String>(){


                @Override
                protected String doInBackground(String... params) {


                    String json = new NetWorkUtils().getJsonHttpConnetion(URLDB.URL_IJ+"1");


                    return json;
                }


                @Override
                protected void onPostExecute(String s) {
                    super.onPostExecute(s);


                    SuperClassStudy superClassStudy = new Gson().fromJson(s, SuperClassStudy.class);
                    results = superClassStudy.getResults();
                    myBaseAdapter = new MyBaseAdapter(results,getActivity());
                    mPullRefreshListView.setAdapter(myBaseAdapter);

                }
            }.execute();
        }


        public void initView(){
            mPullRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<ListView>() {
                @Override
                public void onRefresh(PullToRefreshBase<ListView> refreshView) {

                    //加载新数据,刷新显示
                    pullToRefreshData();


                    Toast.makeText(getActivity(),"刷新完毕",Toast.LENGTH_SHORT).show();
                }
            });
            mPullRefreshListView.setOnLastItemVisibleListener(new PullToRefreshBase.OnLastItemVisibleListener() {
                @Override
                public void onLastItemVisible() {
                    //加载更多数据
                    loadMoreData();
                    Toast.makeText(getActivity(),"加载完毕",Toast.LENGTH_SHORT).show();
                }
            });
        }

        int count=1;
        //加载数据
        private void loadMoreData() {


            new AsyncTask<String,Integer,String>(){
                @Override
                protected String doInBackground(String... params) {
                    count++;
                    String json = new NetWorkUtils().getJsonHttpConnetion(URLDB.URL_IJ+count);

                    return json;
                }


                @Override
                protected void onPostExecute(String s) {
                    super.onPostExecute(s);

                    SuperClassStudy superClassStudy = new Gson().fromJson(s, SuperClassStudy.class);
                    List<SuperClassStudy.ResultsBean> results1 = superClassStudy.getResults();
                    results.addAll(results1);
                    myBaseAdapter.notifyDataSetChanged();//刷新适配器
                }
            }.execute();
        }

        //刷新数据
        private void pullToRefreshData() {
            new AsyncTask<String,Integer,String>(){

                @Override
                protected String doInBackground(String... params) {


                    String json = new NetWorkUtils().getJsonHttpConnetion(url);

                    return json;
                }

                @Override
                protected void onPostExecute(String s) {
                    super.onPostExecute(s);

                    SuperClassStudy superClassStudy = new Gson().fromJson(s, SuperClassStudy.class);
                    results = superClassStudy.getResults();
                    myBaseAdapter = new MyBaseAdapter(results,getActivity());
                    mPullRefreshListView.setAdapter(myBaseAdapter);
                    mPullRefreshListView.onRefreshComplete();//停止刷新

                }
            }.execute();
        }
    }

    生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气多多生气生气生气生气生气支持生气生气生气生气生气生气生气生气生气生气生气多多生气生气生气生气生气生气点赞生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气

  • 相关阅读:
    overflow :hidden隐藏溢出用处大
    datalist 数据展示顺序
    SEO 特定搜索和外链技巧
    Android网络地址簿同步的方式
    表单全选及取消全选
    for循环的嵌套之小星星。
    数组的方法中那些会改变原数组呢?
    for循环的嵌套之打印倒三角的星星
    Js中的排他思想
    计算阶乘的思路。
  • 原文地址:https://www.cnblogs.com/zihang814/p/7513401.html
Copyright © 2020-2023  润新知