MainActivity
import android.os.Bundle; 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 com.example.week2_moni.adapter.MyAdapter; import com.example.week2_moni.fragment.Afragment; import com.example.week2_moni.fragment.Bfragment; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { private TabLayout Tab_Layout; private ViewPager View_Pager; private ArrayList<Fragment> mList = new ArrayList<>(); private ArrayList<String> mTitle = new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initData(); initView(); } private void initData() { mList.add(new Afragment()); mList.add(new Bfragment()); mTitle.add("首頁"); mTitle.add("新聞"); } private void initView() { Tab_Layout = findViewById(R.id.Tab_Layout); View_Pager = findViewById(R.id.View_Pager); View_Pager.setAdapter(new MyAdapter(getSupportFragmentManager(), mList, mTitle)); Tab_Layout.setupWithViewPager(View_Pager); } }
適配器MyAdapter
import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import java.util.ArrayList; public class MyAdapter extends FragmentPagerAdapter { private ArrayList<Fragment> mList; private ArrayList<String> mTitle; public MyAdapter(FragmentManager fm, ArrayList<Fragment> mList, ArrayList<String> mTitle) { super(fm); this.mList = mList; this.mTitle = mTitle; } @Override public Fragment getItem(int i) { return mList.get(i); } @Override public int getCount() { return mList.size(); } @Nullable @Override public CharSequence getPageTitle(int position) { return mTitle.get(position); } }
主佈局
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout 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" tools:context=".MainActivity"> <!--tabMode默認是fixed 自適應--> <android.support.design.widget.TabLayout android:id="@+id/Tab_Layout" android:layout_width="match_parent" android:layout_height="wrap_content" app:tabMode="scrollable"/> <android.support.v4.view.ViewPager android:id="@+id/View_Pager" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@+id/Tab_Layout"> </android.support.v4.view.ViewPager> </RelativeLayout>
構造n個Fragment 切換