主要的思路:
第一、在主的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>
<?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