Android开发——项⽬实例(五)集新闻、⾳乐、电影于⼀体
的软件(带打包源码)
主页⾯
1.写界⾯
很明显,这个主界⾯采⽤了ViewPager和TabLayout实现界⾯滑动切换,在使⽤TabLayout之前记得导包,。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="schemas.android/apk/res/android"    xmlns:tools="schemas.android/tools"
xmlns:app="schemas.android/apk/res-auto"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<!--标题区-->
<android.support.design.widget.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabGravity="fill"
app:tabMode="fixed"
android:background="#e67bab"
app:tabTextColor="#fff"
app:tabIndicatorColor="#92dfd1"
app:tabSelectedTextColor="#1f67e2"
>
</android.support.design.widget.TabLayout>
<!--页⾯显⽰区-->
<android.support.v4.view.ViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
/>
</LinearLayout>
2.写Activity
登录后的主页⾯
* 前提:TabLayout依赖的design包
* 属性:①TabLayout、ViewPager
* 操作: 1.初始化⼀个适配器类
*        1.  定义标题和页⾯列表
*        2.  把三个Fragment添加到列表中
*        3.  ⽤列表和标题创建适配器
*      2. 进⾏关联操作
*        1.  ViewPager添加适配器
*        2.  TabLayout与ViewPager关联
ample.tablayoutmenu;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import java.util.ArrayList;
import java.util.List;
/**
* 登录后的主页⾯
* 前提:TabLayout依赖的design包
* 属性:①TabLayout、ViewPager
* 操作: 1.初始化⼀个适配器类
* 操作: 1.初始化⼀个适配器类
* 1.  定义标题和页⾯列表
* 2.  把三个Fragment添加到列表中
* 3.  ⽤列表和标题创建适配器
* 2. 进⾏关联操作
* 1.  ViewPager添加适配器
* 2.  TabLayout与ViewPager关联
*
* @author thinkdoor
*/
public class MainActivity extends AppCompatActivity {
/
*
定义UI组件
*/
private TabLayout tabLayout;
private ViewPager viewPager;
/**
* 创建的回调⽅法
*
* @param savedInstanceState
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_main);
//初始化界⾯组件
tabLayout = (TabLayout) findViewById(R.id.tab_layout);
viewPager = (ViewPager) findViewById(R.id.view_pager);
//获取初始化的适配器
MyFragmentPagerAdapter myFragmentPagerAdapter = init();
//添加适配器
viewPager.setAdapter(myFragmentPagerAdapter);
//设置tablayou和viewpage关联
tabLayout.setupWithViewPager(viewPager);
}
/**
* 初始化适配器
*
* @return:初始化后的适配器
*/
public MyFragmentPagerAdapter init() {
//菜单标题
String[] title = {"新闻", "⾳乐", "电影"};
//创建装载Fragment的列表
List<Fragment> fragmentlist;
电影源代码人物介绍
/*
初始化列表,并把创建的三个Fragment页⾯添加到列表中        */
fragmentlist = new ArrayList<>();
fragmentlist.add(new FragmentOne());
fragmentlist.add(new FragmentTwo());
fragmentlist.add(new FragmentThree());
//创建Fragment适配器
MyFragmentPagerAdapter myFragmentPagerAdapter;
//适配器进⾏适配,传⼊列表与标题
myFragmentPagerAdapter = new MyFragmentPagerAdapter(getSupportFragmentManager(),
fragmentlist, title);
return myFragmentPagerAdapter;
}
}
3.前⾯提到了FragmentOne,FragmentTwo,FragmentThree直接创建先放着,记得继承Fragment奥。
4.创建适配器MyFragmentPagerAdpter
fragment的适配器类
* 1.集成FragmentPagerAdapter,实现相关⽅法
* 2.创建需要显⽰的List集合
* 3.重写getPageTitle设置标题
ample.tablayoutmenu;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import java.util.List;
/**
* fragment的适配器类
* 1.集成FragmentPagerAdapter,实现相关⽅法
* 2.创建需要显⽰的List集合
* 3.重写getPageTitle设置标题
*
* @author thinkdoor
*/
public class MyFragmentPagerAdapter extends FragmentPagerAdapter {
//装载fragment的列表
private List<Fragment> list;
//标题
private String[] title;
/**
* 构造⽅法
*
* @param fm
* @param list:装载fragment的列表
* @param title:标题栏
*/
public MyFragmentPagerAdapter(FragmentManager fm, List<Fragment> list, String[] title) {
super(fm);
this.list = list;
this.title = title;
}
/**
* 返回当前位置的fragment
*
* @param position:当前页⾯的位置
* @return
*/
@Override
public Fragment getItem(int position) {
public Fragment getItem(int position) {
(position);
}
/**
* 获取list中fragment的个数
*
* @return
*/
@Override
public int getCount() {
return list.size();
}
/**
* 返回当前的标题
*
* @param position:当前页⾯的位置
* @return
*/
@Override
public CharSequence getPageTitle(int position) {
return title[position];
}
}
OK了,现在,我们已经可以实现界⾯滑动了,但是每个Fragment页⾯⾥都是空空的。好了,现在,来点刺激的,写能显⽰新闻列表的的FragmentOne。
新闻页⾯
新闻页⾯能显⽰新闻列表,点击新闻进⼊新闻详情页⾯

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。