當前位置:編程學習大全網 - 源碼下載 - android studio 怎樣寫fragment+tabhost

android studio 怎樣寫fragment+tabhost

tabhost這個控件谷歌已經棄用了,多學無益。現在都流行tablayout+fragment+viewpager.

先看安卓無憂中對這個的demo,如果想看源碼,請百度安卓無憂,點擊源碼就可以看。

fragment:

package?mm.shandong.com.testtablayout.adapter;

import?android.support.v4.app.Fragment;

import?android.support.v4.app.FragmentManager;

import?android.support.v4.app.FragmentPagerAdapter;

import?java.util.List;

/**

*?Created?by?安卓無憂?on?2016/8/11.

*/

public?class?MyFragmentPagerAdapter?extends?FragmentPagerAdapter?{

private?List<Fragment>?list_fragment;?//fragment列表

private?List<String>?list_Title;?//tab名的列表

public?MyFragmentPagerAdapter(FragmentManager?fm,

List<Fragment>?list_fragment,?List<String>?list_Title)?{

super(fm);

this.list_fragment?=?list_fragment;

this.list_Title?=?list_Title;

}

@Override

public?Fragment?getItem(int?position)?{

return?list_fragment.get(position);

}

@Override

public?int?getCount()?{

return?list_fragment.size();

}

@Override

public?CharSequence?getPageTitle(int?position)?{

return?list_Title.get(position);

}

}

activity:

package?mm.shandong.com.testtablayout;

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;

import?mm.shandong.com.testtablayout.adapter.MyFragmentPagerAdapter;

import?mm.shandong.com.testtablayout.fragment.HomeFragment;

import?mm.shandong.com.testtablayout.fragment.SearchFragment;

import?mm.shandong.com.testtablayout.fragment.TuanGouFragment;

import?mm.shandong.com.testtablayout.fragment.UserFragment;

public?class?TestTabLayoutActivity?extends?AppCompatActivity?{

ViewPager?viewPager;

TabLayout?tabLayout;

List<Fragment>?list_fragment;

List<String>?list_title;

@Override

protected?void?onCreate(Bundle?savedInstanceState)?{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_test_tab_layout);

tabLayout?=?(TabLayout)?findViewById(R.id.tablayout);

viewPager?=?(ViewPager)?findViewById(R.id.viewPager);

list_fragment?=?new?ArrayList<Fragment>();

list_title?=?new?ArrayList<String>();

initControls();

}

///初始化

private?void?initControls()?{

//創建Fragement

HomeFragment?homeFragment?=?new?HomeFragment();

SearchFragment?searchFragment?=?new?SearchFragment();

TuanGouFragment?tuanGouFragment?=?new?TuanGouFragment();

UserFragment?userFragment?=?new?UserFragment();

//將fragment裝進列表中

list_fragment?=?new?ArrayList<>();

list_fragment.add(homeFragment);

list_fragment.add(searchFragment);

list_fragment.add(tuanGouFragment);

list_fragment.add(userFragment);

//將名稱加載tab名字列表,正常情況下,我們應該在values/arrays.xml中進行定義然後調用

list_title?=?new?ArrayList<>();

list_title.add("網站主頁");

list_title.add("搜索周邊");

list_title.add("我的團購");

list_title.add("用戶管理");

//設置TabLayout的模式

tabLayout.setTabMode(TabLayout.MODE_FIXED);

//為TabLayout添加tab名稱

tabLayout.addTab(tabLayout.newTab().setText(list_title.get(0)));

tabLayout.addTab(tabLayout.newTab().setText(list_title.get(1)));

tabLayout.addTab(tabLayout.newTab().setText(list_title.get(2)));

tabLayout.addTab(tabLayout.newTab().setText(list_title.get(3)));

//創建ViewPager的FragmentPagerAdapter

MyFragmentPagerAdapter?myFragmentPagerAdapter;

myFragmentPagerAdapter?=?new?MyFragmentPagerAdapter(this.

getSupportFragmentManager(),?list_fragment,?list_title);

//viewpager加載adapter

viewPager.setAdapter(myFragmentPagerAdapter);

//tabLayout與viewPager建立聯系

tabLayout.setupWithViewPager(viewPager);

//tab_FindFragment_title.set

}

}

ps:為了方便交流看壹下我名字中文和除了中文以外的。

  • 上一篇:linux和unix各有什麽特點?
  • 下一篇:大同高速收費站防疫政策
  • copyright 2024編程學習大全網