ViewPager结合Fragment的简单使用
MainActivity代码如下:
package com.luo.dllo.test;
import android.graphics.Color;
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 android.widget.TableLayout;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
private ViewPager viewPager;
private TabLayout tabLayout;
private ArrayList<Fragment> data;
private MyAdapter myAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private void initView() {
viewPager = (ViewPager) findViewById(R.id.viewpager);
tabLayout = (TabLayout) findViewById(R.id.tablayout);
data = new ArrayList<>();
data.add(new FragmentOne());
data.add(new FragmentTwo());
data.add(new FragmentThree());
data.add(new FragmentFour());
myAdapter = new MyAdapter(getSupportFragmentManager(), data);
viewPager.setAdapter(myAdapter);
tabLayout.setTabTextColors(Color.BLACK, Color.GREEN);//设置标签选中颜色(未被选中的颜色,选中的颜色)
tabLayout.setSelectedTabIndicatorColor(Color.LTGRAY);//导航下划线的颜色
tabLayout.setupWithViewPager(viewPager);//tablayout与viewpager的绑定
}
}
适配器内容:
package com.luo.dllo.test;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import java.util.ArrayList;
/**
* Created by dllo on 16/1/7.
*/
public class MyAdapter extends FragmentPagerAdapter {
private ArrayList<Fragment> data;
//定义一个标签内容的数组
private String[] titles = {"微信", "通讯录", "发现", "我"};
public MyAdapter(FragmentManager fm, ArrayList<Fragment> data) {
super(fm);
this.data = data;
}
@Override
public Fragment getItem(int position) {
return data.get(position);
}
@Override
public int getCount() {
return data.size();
}
//设置标签文字的方法
@Override
public CharSequence getPageTitle(int position) {
return titles[position];
}
}
布局文件很简单,如下:
<?xml version="1.0" encoding="utf-8"?>
<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"
tools:context=".MainActivity">
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<android.support.design.widget.TabLayout
android:id="@+id/tablayout"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
这里Fragment就不一一列出,就只给出一个:
Java文件:
package com.luo.dllo.test;
import android.os.Bundle;
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 dllo on 16/1/7.
*/
public class FragmentOne extends Fragment{
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_one,null);
return view;
}
}
XML布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/tv_one"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="第一个界面"/>
</LinearLayout>