一个典型模板
创建几个Fragment和布局,这里写一个例子就不多写了,因为都一样。记得给布局一个颜色
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;
import com.bwei.czx.czxviewpager_fragment.R;
/**
* Created by czx on 2017/10/26.
*/
public class Fragment11 extends Fragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment1_layout,null);
return view;
}
}
Activity布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" 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="0dp"
android:layout_weight="1"
android:id="@+id/viewpager">
</android.support.v4.view.ViewPager>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal">
<Button
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="按钮1"
android:id="@+id/btn1"/>
<Button
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="按钮2"
android:id="@+id/btn2"/>
<Button
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="按钮3"
android:id="@+id/btn3"/>
</LinearLayout>
</LinearLayout>
Activity代码:
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import com.bwei.czx.czxviewpager_fragment.fragment.Fragment1;
import com.bwei.czx.czxviewpager_fragment.fragment.Fragment2;
import com.bwei.czx.czxviewpager_fragment.fragment.Fragment3;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private ViewPager viewPager;
private Button btn1;
private Button btn2;
private Button btn3;
private List<Button> buttons;
private List<Fragment> fragments;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager = (ViewPager) findViewById(R.id.viewpager);
btn1 = (Button) findViewById(R.id.btn1);
btn2 = (Button) findViewById(R.id.btn2);
btn3 = (Button) findViewById(R.id.btn3);
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
btn3.setOnClickListener(this);
fragments = new ArrayList<>();
Fragment1 fragment1 = new Fragment1();
Fragment2 fragment2 = new Fragment2();
Fragment3 fragment3 = new Fragment3();
fragments.add(fragment1);
fragments.add(fragment2);
fragments.add(fragment3);
FragmentManager fm = getSupportFragmentManager();
MyAdapter adapter = new MyAdapter(fm);
viewPager.setAdapter(adapter);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btn1:
viewPager.setCurrentItem(0);
break;
case R.id.btn2:
viewPager.setCurrentItem(1);
break;
case R.id.btn3:
viewPager.setCurrentItem(2);
break;
}
}
class MyAdapter extends FragmentPagerAdapter{
public MyAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return fragments.get(position);
}
@Override
public int getCount() {
return fragments.size();
}
}
}
Fragment1中的代码
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.bwei.czx.czxviewpager_fragment.R;
import java.util.ArrayList;
import java.util.List;
/**
* Created by czx on 2017/10/26.
*/
public class Fragment1 extends Fragment {
private TabLayout tabLayout;
private ViewPager viewPager;
String[] ArrTitle = {"标题1","标题2","标题3","标题4"};
private List<Fragment> fragments;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment1_layout,null);
tabLayout = (TabLayout) view.findViewById(R.id.tablayout);
viewPager = (ViewPager) view.findViewById(R.id.f1viewpager);
//配置
tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);
tabLayout.setupWithViewPager(viewPager);
fragments = new ArrayList<>();
Fragment11 fragment11 = new Fragment11();
Fragment22 fragment22 = new Fragment22();
Fragment33 fragment33 = new Fragment33();
Fragment44 fragment44 = new Fragment44();
fragments.add(fragment11);
fragments.add(fragment22);
fragments.add(fragment33);
fragments.add(fragment44);
FragmentManager fm = getActivity().getSupportFragmentManager();
Myf1Adpter adpter = new Myf1Adpter(fm);
viewPager.setAdapter(adpter);
return view;
}
class Myf1Adpter extends FragmentPagerAdapter{
public Myf1Adpter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return fragments.get(position);
}
@Override
public int getCount() {
return fragments.size();
}
@Override
public CharSequence getPageTitle(int position) {
return ArrTitle[position];
}
}
}
Fragment1中的布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#0ff">
<android.support.design.widget.TabLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:id="@+id/tablayout">
</android.support.design.widget.TabLayout>
<android.support.v4.view.ViewPager
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:id="@+id/f1viewpager">
</android.support.v4.view.ViewPager>
</LinearLayout>
OK完成...