安卓今日头条的框架的搭建

本文介绍了如何在安卓应用中搭建类似今日头条的框架,包括使用DrawerLayout和ViewPager实现侧滑功能,以及在主Activity中加载多个Fragment。在第一个Fragment中,通过TabLayout和ViewPager结合实现导航栏滑动,利用网络请求解析JSON数据,配合XListView和ImageLoader进行新闻列表的展示,支持上拉加载和下拉刷新。
摘要由CSDN通过智能技术生成

        

主要的思路:

                              第一、在主的activity中写DrawerLayout加Viewpager(vp)实现侧拉的功能

                                         写viewpager(vp1)加载四个Fragment

                            第二,在第一个Fragment中加载TabLayout与Viewpager实现导航栏的滑动

                                       写一个viewpager与一个下圆点的联动,在写个XListView实现解析后新闻条目的上拉加载,下拉刷新,gson的架包

      

                                       在适配器中判断子条目的不同布局,ImageLoader加载图片 (需要使用universal_Imager_Loader的架包)

       //activty_main的布局  

     
<?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"

    >
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >
    <android.support.v4.view.ViewPager
        android:layout_width="match_parent"
        android:layout_height="690dp"
        android:id="@+id/vp"
        android:layout_weight="2"

        />

    <RadioGroup
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:id="@+id/rg"
        android:layout_weight="8"
        android:orientation="horizontal">
        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/rb1"
            android:text="新闻"
            android:layout_margin="15dp"
            android:textSize="20sp"
            android:button="@null"
            android:layout_gravity="center"
            android:gravity="center"
            android:checked="true"
            android:layout_weight="1"
            android:background="@drawable/se"/>
        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/rb2"
            android:text="关注"
            android:layout_margin="15dp"
            android:textSize="20sp"
            android:button="@null"
            android:layout_gravity="center"
            android:gravity="center"
            android:layout_weight="1"
            android:background="@drawable/se"/>
        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/rb3"
            android:text="动态"
            android:layout_margin="15dp"
            android:textSize="20sp"
            android:button="@null"
            android:layout_gravity="center"
            android:gravity="center"
            android:layout_weight="1"
            android:background="@drawable/se"/>
        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:id="@+id/rb4"
            android:text="设置"
            android:layout_margin="15dp"
            android:textSize="20sp"
            android:button="@null"
            android:layout_gravity="center"
            android:gravity="center"
            android:background="@drawable/se"/>


    </RadioGroup>
</LinearLayout>


    <ListView
        android:layout_width="200dp"
        android:layout_height="match_parent"
        android:id="@+id/lv"
        android:background="#fff"
        android:entries="@array/news"
        android:layout_gravity="left">

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

//MainActivit

//在drawale包下创建selector.xml的文件控件按钮被选中的颜色


<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:drawable="@color/colorPrimary"/>
</selector>



import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
import android.support.v4.widget.DrawerLayout;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.RadioGroup;

import com.example.shenxuesong.jinritoutiao.Adapter.MyAdapter;
import com.example.shenxuesong.jinritoutiao.Fragment.Fragment01;
import com.example.shenxuesong.jinritoutiao.Fragment.Fragment02;
import com.example.shenxuesong.jinritoutiao.Fragment.Fragment03;
import com.example.shenxuesong.jinritoutiao.Fragment.Fragment04;

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

public class MainActivity extends FragmentActivity implements RadioGroup.OnCheckedChangeListener{
    private ViewPager vp;
    private RadioGroup rg;
    private List<Fragment>list=new ArrayList<Fragment>();
    private ListView lv;
    private DrawerLayout dl;
        @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //查找组件
        vp=(ViewPager)findViewById(R.id.vp);
        rg=(RadioGroup)findViewById(R.id.rg);
            lv=(ListView)findViewById(R.id.lv) ;
            dl=(DrawerLayout)findViewById(R.id.dl);
        //造数据
        list.add(new Fragment01());
        list.add(new Fragment02());
        list.add(new Fragment03());
        list.add(new Fragment04());
        //设置适配器
        MyAdapter myAdapter = new MyAdapter(getSupportFragmentManager(),list);
        vp.setAdapter(myAdapter);

         //实现侧拉的功能
          init();

        //设置viewpager的监听事件,使vp与rg有联动效果
       vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {
                switch (position){
                    case 0:
                        rg.check(R.id
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值