fragment tabhost

来源:互联网 发布:arrival to earth知乎 编辑:程序博客网 时间:2024/03/29 09:20

一个fragment tabhost的简单demo 可在此基础上进行修改,直接来代码得意


创建4个fragment并设置background


MainActivity.class

public class MainActivity extends AppCompatActivity {    private ViewPager viewPager;    private FragmentTabHost fragmentTabHost;    private List<Fragment> fragmentList;    private Class aClass[] = {Fragment1.class,Fragment2.class,Fragment3.class,Fragment4.class};    private Fragment fragment[] = {new Fragment1(),new Fragment2(),new Fragment3(),new Fragment4()};    private String titles[] = {"1","2","3","4"};    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        fragmentTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);        viewPager = (ViewPager) findViewById(R.id.view_pager);        fragmentList = new ArrayList<Fragment>();        fragmentTabHost.setup(this,getSupportFragmentManager(),android.R.id.tabcontent);        fragmentTabHost.getTabWidget().setDividerDrawable(null);        for(int i=0;i<fragment.length;i++){            TabHost.TabSpec tabSpec = fragmentTabHost.newTabSpec(titles[i]).setIndicator(getTabView(i));            fragmentTabHost.addTab(tabSpec,aClass[i],null);            fragmentList.add(fragment[i]);            fragmentTabHost.getTabWidget().getChildAt(i).setBackgroundColor(Color.WHITE);        }        viewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {            @Override            public Fragment getItem(int position) {                return fragmentList.get(position);            }            @Override            public int getCount() {                return fragmentList.size();            }        });        fragmentTabHost.setOnTabChangedListener(new TabHost.OnTabChangeListener() {            @Override            public void onTabChanged(String s) {                viewPager.setCurrentItem(fragmentTabHost.getCurrentTab());            }        });        viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {            @Override            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {            }            @Override            public void onPageSelected(int position) {                fragmentTabHost.setCurrentTab(position);            }            @Override            public void onPageScrollStateChanged(int state) {            }        });    }    private View getTabView(int index) {        View view = LayoutInflater.from(this).inflate(R.layout.tab_item, null);        TextView title = (TextView) view.findViewById(R.id.title);        title.setText(titles[index]);        return view;    }}

tab_title_color.xml

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android">    <item android:color="@color/titleColor" android:state_selected="false"/>    <item android:color="@color/titleColorSelected" android:state_selected="true"/></selector>

activity_main.xml

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/activity_main"    android:layout_width="match_parent"    android:layout_height="match_parent">    <android.support.v4.app.FragmentTabHost        android:id="@android:id/tabhost"        android:layout_width="match_parent"        android:layout_height="match_parent">        <LinearLayout            android:layout_width="match_parent"            android:layout_height="match_parent"            android:orientation="vertical">            <TabWidget                android:id="@android:id/tabs"                android:layout_width="match_parent"                android:layout_height="?attr/actionBarSize">            </TabWidget>            <FrameLayout                android:id="@android:id/tabcontent"                android:layout_width="0dp"                android:layout_height="0dp"                android:layout_weight="0">            </FrameLayout>            <android.support.v4.view.ViewPager                android:id="@+id/view_pager"                android:layout_width="match_parent"                android:layout_height="0dp"                android:layout_weight="1">            </android.support.v4.view.ViewPager>        </LinearLayout>    </android.support.v4.app.FragmentTabHost></RelativeLayout>





0 0
原创粉丝点击