侧滑+鸡肋

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

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <LinearLayout
            android:id="@+id/ll_bottom"
            android:orientation="horizontal"
            android:layout_alignParentBottom="true"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <TextView
                android:id="@+id/txt_concern"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:gravity="center"
                android:padding="5dp"
                android:text="关注" />

            <TextView
                android:id="@+id/txt_message"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:gravity="center"
                android:padding="5dp"
                android:text="消息" />

            <TextView
                android:id="@+id/txt_my"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:gravity="center"
                android:layout_gravity="center"
                android:padding="5dp"
                android:text="我的" />
        </LinearLayout>
        <FrameLayout
            android:id="@+id/fl_content"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_above="@id/ll_bottom"></FrameLayout>
    </RelativeLayout>
    <LinearLayout
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="#ffffff"
        android:orientation="vertical"
        >
        <ListView
            android:id="@+id/lv_drawer"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"></ListView>
    </LinearLayout>

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

第一个fragment的xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <com.bwie.xlistview.XListView
        android:id="@+id/xlistview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"></com.bwie.xlistview.XListView>


</LinearLayout>

package com.example.newsmonth1;

import android.content.Context;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.app.Fragment;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.bwie.xlistview.XListView;
import com.google.gson.Gson;

import java.nio.FloatBuffer;
import java.util.ArrayList;
import java.util.List;

public class ContentFragment extends BaseFragment {
    Handler handler=new Handler();
    private XListView xListView;
    private List<News.DataBean> list;
    private NewsAdapter adapter;
    private int page=1;
    @Override
    protected void initView(View v) {
        xListView = v.findViewById(R.id.xlistview);
    }

    @Override
    protected void initData() {
        super.initData();
        list = new ArrayList<>();
        adapter = new NewsAdapter(getActivity(), list);
        xListView.setAdapter(adapter);
        xListView.setPullRefreshEnable(true);
        xListView.setPullLoadEnable(true);
        xListView.setXListViewListener(new XListView.IXListViewListener() {
            @Override
            public void onRefresh() {
                page=1;
                getData(page,false);
            }

            @Override
            public void onLoadMore() {
                page++;
                getData(page,true);
            }
        });
        getData(1,false);
    }

    private void getData(int i, final boolean b) {
        new AsyncTask<String, Integer, String>() {
            @Override
            protected String doInBackground(String... strings) {
                String result=HttpUtils.getHttpFroment(strings[0]);
                return result;
            }

            @Override
            protected void onPostExecute(String s) {
                super.onPostExecute(s);
                if(!TextUtils.isEmpty(s)){
                    Gson gson=new Gson();
                    News news=gson.fromJson(s,News.class);
                    if(news.getData()!=null){
                        if(!b){
                            list.clear();
                        }
                        list.addAll(news.getData());
                        adapter.notifyDataSetChanged();
                    }
                }
                handler.postDelayed(new Runnable() {

                    @Override
                    public void run() {
                        if(b){
                            xListView.stopLoadMore();
                        }else{
                            xListView.stopRefresh();
                            xListView.setRefreshTime("刚刚");
                        }
                    }
                },2000);
            }
        }.execute("http://www.xieast.com/api/news/news.php?page="+page);
    }

    @Override
    protected int getContentView() {
        return R.layout.fragment_content;
    }
}

新闻类的适配器
package com.example.newsmonth1;

import android.content.Context;
import android.text.TextUtils;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.nostra13.universalimageloader.core.ImageLoader;

import java.util.List;

/**
 * Created by 。。。。 on 2018/9/17.
 */

public class NewsAdapter extends BaseAdapter {
    private Context context;
    private List<News.DataBean> list;

    public NewsAdapter(Context context, List<News.DataBean> list) {
        this.context = context;
        this.list = list;
    }

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

    @Override
    public Object getItem(int position) {
        return list.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public int getViewTypeCount() {
        return 3;
    }

    @Override
    public int getItemViewType(int position) {
        News.DataBean bean=list.get(position);
        if(!TextUtils.isEmpty(bean.getThumbnail_pic_s03())){
            return 2;
        }else if(!TextUtils.isEmpty(bean.getThumbnail_pic_s02())){
            return 1;
        }else{
            return 0;
        }
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder1 holder1=null;
        ViewHolder2 holder2=null;
        ViewHolder3 holder3=null;
        int type=getItemViewType(position);
        switch (type){
            case 0:
                if(convertView==null){
                    holder1=new ViewHolder1();
                    convertView=View.inflate(context,R.layout.item_news_01,null);
                    holder1.title=convertView.findViewById(R.id.title);
                    holder1.img1=convertView.findViewById(R.id.img1);
                    convertView.setTag(holder1);
                }else {
                    holder1= (ViewHolder1) convertView.getTag();
                }
                holder1.title.setText(list.get(position).getTitle());
                ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s(),holder1.img1);
                break;
            case 1:
                if(convertView==null){
                    holder2=new ViewHolder2();
                    convertView=View.inflate(context,R.layout.item_news_02,null);
                    holder2.title=convertView.findViewById(R.id.title);
                    holder2.img1=convertView.findViewById(R.id.img1);
                    holder2.img2=convertView.findViewById(R.id.img2);
                    convertView.setTag(holder2);
                }else {
                    holder2= (ViewHolder2) convertView.getTag();
                }
                holder2.title.setText(list.get(position).getTitle());
                ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s(),holder2.img1);
                ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s02(),holder2.img2);
                break;
            case 2:
                if(convertView==null){
                    holder3=new ViewHolder3();
                    convertView=View.inflate(context,R.layout.item_news_03,null);
                    holder3.title=convertView.findViewById(R.id.title);
                    holder3.img1=convertView.findViewById(R.id.img1);
                    holder3.img2=convertView.findViewById(R.id.img2);
                    holder3.img3=convertView.findViewById(R.id.img3);
                    convertView.setTag(holder3);
                }else {
                    holder3= (ViewHolder3) convertView.getTag();
                }
                holder3.title.setText(list.get(position).getTitle());
                ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s(),holder3.img1);
                ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s02(),holder3.img2);
                ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s03(),holder3.img3);
                break;
        }
        return convertView;
    }
    class ViewHolder1{
        TextView title;
        ImageView img1;
    }
    class ViewHolder2{
        TextView title;
        ImageView img1;
        ImageView img2;
    }
    class ViewHolder3{
        TextView title;
        ImageView img1;
        ImageView img2;
        ImageView img3;
    }
}

鸡肋

package com.example.newsmonth1;

import android.os.Bundle;
import android.os.PersistableBundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;

/**
 * Created by 。。。。 on 2018/9/17.
 */

public abstract class BaseActivity extends AppCompatActivity {


    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        previewAction();
        setContentView(getContentView());
        initView();
        initData();
        setListener();
        setMoreAction();
    }

    protected void setMoreAction() {
    }

    protected void setListener() {
    }

    protected void initData() {
    }

    protected abstract void initView();

    protected abstract int getContentView();

    protected void previewAction() {
    }
}

鸡肋

package com.example.newsmonth1;

import android.content.Context;
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;

/**
 * Created by 。。。。 on 2018/9/17.
 */

public abstract class BaseFragment extends Fragment {
    protected Context context;
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View v = inflater.inflate(getContentView(),container,false);
        initView(v);
        return v;
    }

    protected abstract void initView(View v);

    protected abstract int getContentView();
    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        if(context==null){
            context=getActivity();
            initData();
            setlistener();
            setMoreAction();
        }
    }

    protected void setMoreAction() {
    }

    protected void setlistener() {
    }

    protected void initData() {
    }
}

imageloder

package com.example.newsmonth1;

import android.app.Application;
import android.graphics.Bitmap;
import android.os.Environment;

import com.nostra13.universalimageloader.cache.disc.DiskCache;
import com.nostra13.universalimageloader.cache.disc.impl.ext.LruDiskCache;
import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;

import java.io.File;
import java.io.IOException;

/**
 * Created by 。。。。 on 2018/9/17.
 */

public class BaseAppliction extends Application {

    private File file;

    @Override
    public void onCreate() {
        super.onCreate();
        if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
            File rootSD=Environment.getExternalStorageDirectory();
            file = new File(rootSD,"imgs");
            if(!file.exists()){
                file.mkdirs();
            }
        }
        try {
            DiskCache diskCache=new LruDiskCache(file,new Md5FileNameGenerator(),50*1024*1024);
            DisplayImageOptions options=new DisplayImageOptions.Builder()
                    .cacheInMemory(true)
                    .cacheOnDisk(true)
                    .bitmapConfig(Bitmap.Config.RGB_565)
                    .build();
            ImageLoaderConfiguration configuration=new ImageLoaderConfiguration.Builder(this)
                    .diskCache(diskCache)
                    .defaultDisplayImageOptions(options)
                    .build();
            ImageLoader.getInstance().init(configuration);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

主页面
package com.example.newsmonth1;

import android.support.v4.app.FragmentManager;
import android.support.v4.widget.DrawerLayout;
import android.view.View;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends BaseActivity implements View.OnClickListener {


    private ListView lvdrawer;
    private TextView txtcontent;
    private TextView txtmessage;
    private TextView txtMy;
    private List<String> list;
    private DrawerLayout dl;
    private ContentFragment contentFragment;
    private MessageFragment messageFragment;
    private MyFragment myFragment;
    private FragmentManager manager;
    private LeftDrawerAdapter adapter;

    @Override
    protected int getContentView() {
        return R.layout.activity_main;
    }

    @Override
    protected void initView() {
        dl = findViewById(R.id.dl);
        lvdrawer = findViewById(R.id.lv_drawer);
        txtcontent = findViewById(R.id.txt_concern);
        txtmessage = findViewById(R.id.txt_message);
        txtMy = findViewById(R.id.txt_my);
    }

    @Override
    protected void initData() {
        super.initData();
        list = new ArrayList<>();
        list.add("所有收件箱");
        list.add("所有未读");
        list.add("所有红旗");
        adapter = new LeftDrawerAdapter(this,list);
        lvdrawer.setAdapter(adapter);
        contentFragment = new ContentFragment();
        messageFragment = new MessageFragment();
        myFragment = new MyFragment();
        manager = getSupportFragmentManager();
        manager.beginTransaction()
                .add(R.id.fl_content,contentFragment)
                .add(R.id.fl_content,messageFragment)
                .add(R.id.fl_content,myFragment)
                .hide(messageFragment)
                .hide(myFragment)
                .commit();
    }

    @Override
    protected void setListener() {
        super.setListener();
        txtcontent.setOnClickListener(this);
        txtmessage.setOnClickListener(this);
        txtMy.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case  R.id.txt_concern:
                manager.beginTransaction()
                        .show(contentFragment)
                        .hide(messageFragment)
                        .hide(myFragment)
                        .commit();
                break;
            case  R.id.txt_message:
                manager.beginTransaction()
                        .hide(contentFragment)
                        .show(messageFragment)
                        .hide(myFragment)
                        .commit();
                break;
            case  R.id.txt_my:
                manager.beginTransaction()
                        .hide(contentFragment)
                        .hide(messageFragment)
                        .show(myFragment)
                        .commit();
                break;
        }
    }
}

侧滑list的适配器
package com.example.newsmonth1;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

import java.util.List;

/**
 * Created by 。。。。 on 2018/9/17.
 */

public class LeftDrawerAdapter extends BaseAdapter {
    private Context context;
    private List<String> list;

    public LeftDrawerAdapter(Context context, List<String> list) {
        this.context = context;
        this.list = list;
    }

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

    @Override
    public Object getItem(int position) {
        return list.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder=null;
        if(convertView==null){
            holder=new ViewHolder();
            convertView=View.inflate(context,R.layout.item_drawer,null);
            holder.txttitle=convertView.findViewById(R.id.txt_left_title);
            convertView.setTag(holder);
        }else{
            holder= (ViewHolder) convertView.getTag();
        }
        holder.txttitle.setText(list.get(position));
        return convertView;
    }
    class ViewHolder{
        TextView txttitle;
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值