activiet——xml
<?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"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!--主内容区域-->
<FrameLayout
android:id="@+id/frame_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
</FrameLayout>
<!--侧滑的区域
侧滑菜单的默认背景颜色是半透明
-->
<RelativeLayout
android:background="#ffffff"
android:id="@+id/drawer_relative"
android:layout_gravity="left"
android:layout_width="200dp"
android:layout_height="match_parent">
<ImageView
android:id="@+id/image_touxiang"
android:layout_centerHorizontal="true"
android:layout_margin="10dp"
android:src="@mipmap/ic_launcher"
android:layout_width="80dp"
android:layout_height="80dp" />
<ListView
android:id="@+id/list_view"
android:layout_below="@+id/image_touxiang"
android:layout_width="match_parent"
android:layout_height="match_parent">
</ListView>
</RelativeLayout>
</android.support.v4.widget.DrawerLayout>
fragemtn——xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent"> <ListView android:id="@+id/list_view" android:layout_width="match_parent" android:layout_height="match_parent"></ListView> </LinearLayout>mainactivity.java
package news1510a.bawei.com.a11_drawer_layout_demo; import android.os.Bundle; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.FrameLayout; import android.widget.ListView; import android.widget.RelativeLayout; import com.example.a12_tabayout_viewpager.NewsFragment; import com.example.a12_tabayout_viewpager.R; import java.util.ArrayList; import java.util.List; /** * 使用drawerLayout实现侧滑菜单 * * 参考博客:http://www.cnblogs.com/zhangqie/p/6410749.html * http://blog.csdn.net/liujiawei00/article/details/51427098 * * 1.换一个接口支持刷新的接口....下拉的时候请求第一页,,,上拉的时候page+1 * 2.多条目 * */ public class MainActivity extends AppCompatActivity { private DrawerLayout drawerLayout; private FrameLayout frameLayout; private RelativeLayout relativeLayout; private ListView listView; private List<String> titles; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //抽屉的跟布局 drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); //主内容区域的布局 frameLayout = (FrameLayout) findViewById(R.id.frame_layout); //抽屉布局 relativeLayout = (RelativeLayout) findViewById(R.id.drawer_relative); listView = (ListView) findViewById(R.id.list_view); //给listView设置适配器 titles = new ArrayList<>(); titles.add("头条"); titles.add("社会"); titles.add("国内"); titles.add("军事"); titles.add("财经"); ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_1,android.R.id.text1, titles); listView.setAdapter(adapter); //刚进入页面的时候 NewsFragment newsFragment = new NewsFragment(); Bundle bundle = new Bundle(); bundle.putString("name",titles.get(0)); newsFragment.setArguments(bundle); getSupportFragmentManager().beginTransaction().replace(R.id.frame_layout,newsFragment).commit(); //设置点击事件 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { //隐藏侧滑菜单 drawerLayout.closeDrawer(relativeLayout); NewsFragment newsFragment = new NewsFragment(); Bundle bundle = new Bundle(); bundle.putString("name",titles.get(i)); newsFragment.setArguments(bundle); getSupportFragmentManager().beginTransaction().replace(R.id.frame_layout,newsFragment).commit(); //drawerLayout.openDrawer(relativeLayout);//打开侧滑菜单 } }); //抽屉的监听事件 drawerLayout.setDrawerListener(new DrawerLayout.DrawerListener() { /** * * @param drawerView * @param slideOffset 表示的抽屉拖出来的宽度,,像素值 */ @Override public void onDrawerSlide(View drawerView, float slideOffset) { } /** * 抽屉打开了 * @param drawerView */ @Override public void onDrawerOpened(View drawerView) { } /** * 抽屉关闭 * @param drawerView */ @Override public void onDrawerClosed(View drawerView) { } /** * 抽屉的状态改变 * * idle -- 表示与导航视图没有交互,静止 dragging -- 表示目前有与导航视图的交互,拖拽的状态 settling -- 表示有与导航视图的交互,并且导航视图正在关闭或打开 * @param newState */ @Override public void onDrawerStateChanged(int newState) { Log.i("zhaungtai---",newState+"---"); } }); } } Newsfragment-------.java package news1510a.bawei.com.a11_drawer_layout_demo; import android.os.AsyncTask; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ListView; import com.google.gson.Gson; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; /** * @author Dash * @date 2017/10/12 * @description: */ public class NewsFragment extends Fragment { private ListView listView; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_layout,container,false); //找到id listView = view.findViewById(R.id.frament_list_view); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); //获取数据 String name = getArguments().getString("name", ""); //判断 if (name.equals("头条")){ name = "top"; }else if (name.equals("军事")){ name = "junshi"; }else if (name.equals("社会")){ name = "shehui"; }else if (name.equals("财经")){ name = "caijing"; }else if (name.equals("国内")){ name = "guonei"; } getDataFromNet(name); } private void getDataFromNet(final String name) { AsyncTask<Void, Void, String> asyncTask = new AsyncTask<Void, Void, String>() { @Override protected String doInBackground(Void... voids) { try { URL url = new URL("http://v.juhe.cn/toutiao/index?type="+name+"&key=597b4f9dcb50e051fd725a9ec54d6653"); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setReadTimeout(5000); connection.setConnectTimeout(5000); //获取 int responseCode = connection.getResponseCode(); if (responseCode == 200){ InputStream inputStream = connection.getInputStream(); String json = streamToString(inputStream,"utf-8"); //打印字符串 Log.i("---",json); return json; } } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String s) { Gson gson = new Gson(); DataDataBean dataDataBean = gson.fromJson(s, DataDataBean.class); MyAdapter myAdapter = new MyAdapter(getActivity(), dataDataBean.getResult().getData()); listView.setAdapter(myAdapter); } }; asyncTask.execute(); } private String streamToString(InputStream inputStream,String charset) { try { InputStreamReader inputStreamReader = new InputStreamReader(inputStream,charset); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); String s = null; StringBuilder builder = new StringBuilder(); while ((s = bufferedReader.readLine()) != null){ builder.append(s); } bufferedReader.close(); return builder.toString(); } catch (Exception e) { e.printStackTrace(); } return null; } }