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(); }}
多多支持多多点赞
转载于:https://www.cnblogs.com/zihang814/p/7513401.html