主页面xml页面
<?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.DrawerLayout xmlns:android=“http://schemas.android.com/apk/res/android”
xmlns:app=“http://schemas.android.com/apk/res-auto”
xmlns:tools=“http://schemas.android.com/tools”
android:id="@+id/cl"
android:layout_width=“match_parent”
android:layout_height=“match_parent”
tools:context=".Main2Activity">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="9"
/>
<android.support.design.widget.BottomNavigationView
android:id="@+id/navigation"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_marginStart="0dp"
android:layout_marginEnd="0dp"
android:background="?android:attr/windowBackground"
app:menu="@menu/navigation" />
</LinearLayout>
<FrameLayout
android:layout_width="300dp"
android:layout_height="match_parent"
android:id="@+id/zhan"
android:background="#3399ff"
android:layout_gravity="start"
></FrameLayout>
</android.support.v4.widget.DrawerLayout>
侧滑头部xml
<android.support.constraint.ConstraintLayout xmlns:android=“http://schemas.android.com/apk/res/android”
android:layout_width=“match_parent”
android:layout_height=“match_parent”
xmlns:app=“http://schemas.android.com/apk/res-auto”>
<TextView
android:id="@+id/text"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:text="left drawer"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toRightOf="@id/icon"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
侧滑菜单页面
cl_fragment
Main2Activity
信息
联系人
我的
drawable_open
drawable_cloce
@string/title_home
@string/title_dashboard
@string/title_notifications
主页面
package com.example.cl_fragment;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.design.widget.BottomNavigationView;
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.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.view.Gravity;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import fragment.FragmentOne;
import fragment.FragmentSan;
import fragment.FragmentTwo;
import fragment.chelai;
public class Main2Activity extends AppCompatActivity {
private TextView mTextMessage;
private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
= new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.navigation_home:
pager.setCurrentItem(0);
return true;
case R.id.navigation_dashboard:
pager.setCurrentItem(1);
return true;
case R.id.navigation_notifications:
pager.setCurrentItem(2);
return true;
}
return false;
}
};
private ViewPager pager;
private BottomNavigationView navigation;
private DrawerLayout cl;
private ActionBarDrawerToggle toggle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
initView();
pager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public Fragment getItem(int i) {
switch (i){
case 0:
return new FragmentOne();
case 1:
return new FragmentTwo();
case 2:
return new FragmentSan();
}
return null;
}
@Override
public int getCount() {
return 3;
}
});
mTextMessage = (TextView) findViewById(R.id.message);
final BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation);
navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i1) {
}
@Override
public void onPageSelected(int i) {
switch (i){
case 0:
navigation.setSelectedItemId(R.id.navigation_home);
break;
case 1:
navigation.setSelectedItemId(R.id.navigation_dashboard);
break;
case 2:
navigation.setSelectedItemId(R.id.navigation_notifications);
break;
}
}
@Override
public void onPageScrollStateChanged(int i) {
}
});
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.zhan,new chelai())
.commit();
toggle=new ActionBarDrawerToggle(this,cl,R.string.drawable_open,R.string.drawable_cloce);
toggle.syncState();
cl.addDrawerListener(toggle);
cl.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) {
}
@Override
public void onDrawerStateChanged(int i) {
}
});
}
private void initView() {
pager = (ViewPager) findViewById(R.id.pager);
navigation = (BottomNavigationView) findViewById(R.id.navigation);
cl = (DrawerLayout) findViewById(R.id.cl);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (toggle.onOptionsItemSelected(item)){
return true;
}
return super.onOptionsItemSelected(item);
}
public void dianji() {
cl.closeDrawer(Gravity.START);
}
public void switchPage(int i){
pager.setCurrentItem(i);
dianji();
}
}
侧滑适配器
package abapter;
import android.content.Context;
import android.graphics.Path;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.example.cl_fragment.R;
import java.util.List;
public class MyAdapter extends BaseAdapter {
private Context context;
private String[] list;
private final int onw=0;
private final int two=1;
public MyAdapter(Context context) {
this.context = context;
list=context.getResources().getStringArray(R.array.page_name);
}
@Override
public int getCount() {
return list.length+1;
}
@Override
public String getItem(int position) {
if (position==0){
return "";
}
return list[position-1];
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (getItemViewType(position)==onw){
ViewHolder viewHolder;
if (convertView==null){
convertView=LayoutInflater.from(context).inflate(R.layout.cshu,parent,false);
viewHolder=new ViewHolder(convertView);
}else {
viewHolder= (ViewHolder) convertView.getTag();
}
}else {
ViewHolder1 viewHolder1;
if (convertView==null){
convertView=LayoutInflater.from(context).inflate(R.layout.cshu1,parent,false);
viewHolder1=new ViewHolder1(convertView);
}else {
viewHolder1= (ViewHolder1) convertView.getTag();
}
viewHolder1.text.setText(getItem(position));
}
return convertView;
}
class ViewHolder{
TextView text;
ImageView icon;
public ViewHolder(View ite){
this.text=ite.findViewById(R.id.text);
icon=ite.findViewById(R.id.icon);
ite.setTag(this);
}
}
class ViewHolder1{
TextView text;
public ViewHolder1(View ite){
this.text=ite.findViewById(R.id.text);
ite.setTag(this);
}
}
@Override
public int getItemViewType(int position) {
if (position==onw){
return onw;
}else{
return two;
}
}
@Override
public int getViewTypeCount() {
return 2;
}
}fragmentOne适配器
package abapter;
import android.content.Context;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.example.cl_fragment.R;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.util.ArrayList;
import java.util.List;
import java.util.zip.Inflater;
import user.User;
public class MyBdapter extends BaseAdapter {
private Context context;
private List<User.DataBean>list;
private final int one=0;
private final int two=1;
public MyBdapter(Context context) {
this.context = context;
this.list = new ArrayList<>();
}
public void setList(List<User.DataBean> list) {
if (list!=null){
this.list = list;
}
notifyDataSetChanged();
}
public void addList(List<User.DataBean> list1) {
if (list!=null){
list.addAll(list1);
}
notifyDataSetChanged();
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
ViewHolder1 viewHolder1;
int itemViewType = getItemViewType(position);
switch (itemViewType){
case one:
if (convertView==null){
convertView=LayoutInflater.from(context).inflate(R.layout.shu,parent,false);
viewHolder=new ViewHolder();
viewHolder.news_title=convertView.findViewById(R.id.news_title);
viewHolder.news_summary=convertView.findViewById(R.id.news_summary);
viewHolder.img=convertView.findViewById(R.id.img);
convertView.setTag(viewHolder);
}else {
viewHolder= (ViewHolder) convertView.getTag();
}
viewHolder.news_title.setText(list.get(position).getNews_title());
viewHolder.news_summary.setText(list.get(position).getNews_summary());
DisplayImageOptions options=new DisplayImageOptions
.Builder()
.cacheOnDisk(true)
.cacheInMemory(true)
.build();
ImageLoader.getInstance().displayImage(list.get(position).getPic_url(),viewHolder.img,options);
break;
case two:
if (convertView==null){
convertView=LayoutInflater.from(context).inflate(R.layout.shu1,parent,false);
viewHolder1=new ViewHolder1();
viewHolder1.news_title=convertView.findViewById(R.id.news_title);
viewHolder1.news_summary=convertView.findViewById(R.id.news_summary);
convertView.setTag(viewHolder1);
}else {
viewHolder1= (ViewHolder1) convertView.getTag();
}
viewHolder1.news_title.setText(list.get(position).getNews_title());
viewHolder1.news_summary.setText(list.get(position).getNews_summary());
break;
}
return convertView;
}
class ViewHolder{
TextView news_title,news_summary;
ImageView img;
}
class ViewHolder1{
TextView news_title,news_summary;
}
@Override
public int getViewTypeCount() {
return 2;
}
@Override
public int getItemViewType(int position) {
if (position%2==0){
return one;
}else{
return two;
}
}
}
侧滑页面
package fragment;
import android.os.Bundle;
import android.support.annotation.NonNull;
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.AdapterView;
import android.widget.ListView;
import com.example.cl_fragment.Main2Activity;
import com.example.cl_fragment.R;
import abapter.MyAdapter;
public class chelai extends Fragment {
private ListView lv;
private MyAdapter myAdapter;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.clxml,container,false);
lv = view.findViewById(R.id.lv);
return view;
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
lv.setOnItemClickListener(null);
myAdapter = new MyAdapter(getActivity());
lv.setAdapter(myAdapter);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (position==0){
((Main2Activity) getActivity()).dianji();
return;
}
((Main2Activity) getActivity()).switchPage(position-1);
}
});
}
}
fragmentOne页面
package fragment;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.example.cl_fragment.R;
import com.example.xlistvier.me.maxwin.view.XListView;
import com.google.gson.Gson;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import abapter.MyBdapter;
import user.User;
public class FragmentOne extends Fragment {
private XListView xlv;
private int page;
private final int count=10;
//123
String auiUrl="https://api.expoon.com/AppNews/getNewsList/type/1/p/";
private MyBdapter myBdapter;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.fragmentone,container,false);
xlv = view.findViewById(R.id.xlv);
myBdapter = new MyBdapter(getActivity());
xlv.setAdapter(myBdapter);
xlv.setPullLoadEnable(true);
xlv.setXListViewListener(new XListView.IXListViewListener() {
@Override
public void onRefresh() {
page=1;
inidData();
}
@Override
public void onLoadMore() {
inidData();
}
});
page=1;
inidData();
return view;
}
private void inidData() {
new AsyncTask<String, Void, ArrayList<User.DataBean>>() {
@Override
protected ArrayList<User.DataBean> doInBackground(String... strings) {
try {
URL url=new URL(strings[0]);
HttpURLConnection urlConnection= (HttpURLConnection) url.openConnection();
if (urlConnection.getResponseCode()==200){
InputStream inputStream = urlConnection.getInputStream();
Gson gson = new Gson();
User user = gson.fromJson(new BufferedReader(new InputStreamReader(inputStream)), User.class);
List<User.DataBean> data = user.getData();
return (ArrayList<User.DataBean>) data;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(ArrayList<User.DataBean> dataBeans) {
super.onPostExecute(dataBeans);
if (dataBeans==null){
xlv.stopRefresh();
xlv.stopLoadMore();
return;
}
if (page==1){
myBdapter.setList(dataBeans);
}else {
myBdapter.addList(dataBeans);
}
xlv.setPullLoadEnable(dataBeans.size()>=count);
xlv.stopRefresh();
xlv.stopLoadMore();
page++;
}
}.execute(auiUrl+page);
}
}
image-loader类
package img;
import android.app.Application;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
public class Mapp extends Application {
@Override
public void onCreate() {
super.onCreate();
ImageLoaderConfiguration aDefault = ImageLoaderConfiguration.createDefault(this);
ImageLoader.getInstance().init(aDefault);
}
}