如何添加Tabhost在导航抽屉 [英] How to add Tabhost in Navigation Drawer

查看:196
本文介绍了如何添加Tabhost在导航抽屉的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的应用程序,我使用的导航抽屉本教程的http://www.androidhive.info/2013/11/android-sliding-menu-using-navigation-drawer/

现在我想补充tabhost与片段,但它不工作

它显示的错误在这里tabss.setViewPager(mViewPager);

无法解析的方法setviewpager(android.support.v4.view.viewpager)

 公共类All_Product_Details扩展片段{


    私人TabHost mTab​​Host;
    私人ViewPager mViewPager;
    私人YourAdapter mTab​​sAdapter;

    私人按钮DESCR;
    私人TextView的general_desc;
    私人TextView的short_desc;
    私人TextView的full_desc;


    私人按钮btn_add_to_cart;

    公共All_Product_Details(){}

    @覆盖
    公共查看onCreateView(LayoutInflater充气,容器的ViewGroup,
                             捆绑savedInstanceState){

        最后查看rootView = inflater.inflate(R.layout.all_product_detais,集装箱,假);

        mViewPager =(ViewPager)rootView.findViewById(R.id.viewpager);
        mTabsAdapter =新YourAdapter(getFragmentManager());
        mViewPager.setAdapter(mTabsAdapter);
        TabWidget tabss =(TabWidget)rootView.findViewById(R.id.tabs);
        tabss.setViewPager(mViewPager);


        general_desc =(TextView中)rootView.findViewById(R.id.general_desc);
        short_desc =(TextView中)rootView.findViewById(R.id.short_desc);
        full_desc =(TextView中)rootView.findViewById(R.id.full_desc);

       btn_add_to_cart =(按钮)rootView.findViewById(R.id.btn_addtocart);
        btn_add_to_cart.setOnClickListener(新View.OnClickListener(){
            @覆盖
            公共无效的onClick(视图查看){
                add_to_cart这个TF =新add_to_cart这个();
                android.support.v4.app.FragmentManager FM = getFragmentManager();
                android.support.v4.app.FragmentTransaction英尺= fm.beginTransaction();
                ft.replace(R.id.frame_container,TF);
                ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
                ft.addToBackStack(空);
                ft.commit();
            }
        });


        short_desc.setVisibility(View.GONE);
        full_desc.setVisibility(View.GONE);
        DESCR =(按钮)rootView.findViewById(R.id.all_prod_description);
        descr.setBackgroundResource(R.drawable.hidebackground);
        descr.setOnClickListener(新View.OnClickListener(){
            @覆盖
            公共无效的onClick(视图查看){

                如果(旗== 0){
                    descr.setBackgroundResource(R.drawable.showbackground);
                    //lnrallbtns.setVisibility(View.GONE);
                    general_desc.setVisibility(View.GONE);
                    标志++;
                } 其他 {
                    descr.setBackgroundResource(R.drawable.hidebackground);
                   // lnrallbtns.setVisibility(View.VISIBLE);
                    general_desc.setVisibility(View.VISIBLE);
                    short_desc.setVisibility(View.GONE);
                    full_desc.setVisibility(View.GONE);
                    标志= 0;
                }
            }
        });

      返回rootView;
    }

    公共类YourAdapter扩展FragmentStatePagerAdapter {
        私有String []标题= {项目1,项目2,3项};
        公共YourAdapter(FragmentManager FM){
            超(FM);
        }

        @覆盖
        公共片段的getItem(int i)以{
            开关(ⅰ){
                情况下0:{
                    返回新FragementA();
                }情况1:{
                    返回新FragmentB();
                }案例2:{
                    返回新FragmentC();
                }
            }
        }

        @覆盖
        公众诠释getCount将(){
            返回titles.length;
        }

        @覆盖
        公共CharSequence的getPageTitle(INT位置){
            回到标题[位置]
        }
    }
}
 

解决方案

我发现,并提到了AWSM例如所谓的巴拉吉-K13

您可以在这里添加任何你喜欢的清单:

MainActivity.java

 包com.webileapps.navdrawer;

进口android.content.res.Configuration;
进口android.os.Bundle;
进口android.support.v4.app.ActionBarDrawerToggle;
进口android.support.v4.view.GravityCompat;
进口android.support.v4.widget.DrawerLayout;
进口android.view.View;
进口android.widget.AdapterView;
进口android.widget.ArrayAdapter;
进口android.widget.ListView;

进口com.actionbarsherlock.app.SherlockFragment;
进口com.actionbarsherlock.app.SherlockFragmentActivity;

公共类MainActivity扩展SherlockFragmentActivity {
    DrawerLayout mDrawerLayout;
    ListView控件mDrawerList;
    ActionBarDrawerToggle mDrawerToggle;

    私人的CharSequence mDrawerTitle;
    私人的CharSequence mTitle;
    私有String [] mPlanetTitles;

    @覆盖
    保护无效的onCreate(包savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.activity_main);

        mTitle = mDrawerTitle =的getTitle();
        mPlanetTitles = getResources()getStringArray(R.array.planets_array)。
        mDrawerLayout =(DrawerLayout)findViewById(R.id.drawer_layout);
        mDrawerList =(ListView控件)findViewById(R.id.left_drawer);

        //设置自定义影子覆盖的主要内容时,抽屉
        //打开
        mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow,
                GravityCompat.START);
        //设置抽屉的列表视图项,然后单击监听器
        mDrawerList.setAdapter(新ArrayAdapter<字符串>(这一点,
                R.layout.drawer_list_item,mPlanetTitles));
        mDrawerList.setOnItemClickListener(新DrawerItemClickListener());

        //使动作条的应用程序图标,表现为动作切换导航抽屉
        getSupportActionBar()setDisplayHomeAsUpEnabled(真)。
        getSupportActionBar()setHomeButtonEnabled(真)。

        // ActionBarDrawerToggle联系在一起的适当交互
        //滑动抽屉和操作栏中的应用程序图标之间
        mDrawerToggle =新ActionBarDrawerToggle(这一点,/ *主机活动* /
        mDrawerLayout,/ * DrawerLayout对象* /
        R.drawable.ic_drawer,/ *导航抽屉图像,以取代上插入符* /
        R.string.drawer_open,/ *开放抽屉说明访问* /
        R.string.drawer_close / *关闭抽屉说明访问* /
        ){
            公共无效onDrawerClosed(查看视图){
                。getSupportActionBar()的setTitle(mTitle);
                invalidateOptionsMenu(); //创建调用
                                            //在prepareOptionsMenu()
            }

            公共无效onDrawerOpened(查看drawerView){
                。getSupportActionBar()的setTitle(mDrawerTitle);
                invalidateOptionsMenu(); //创建调用
                                            //在prepareOptionsMenu()
            }
        };
        mDrawerLayout.setDrawerListener(mDrawerToggle);

        如果(savedInstanceState == NULL){
            选择信息(0);
        }

    }

    @覆盖
    公共布尔onCreateOptionsMenu(com.actionbarsherlock.view.Menu菜单){
        返回super.onCreateOptionsMenu(菜单);
    }

    @覆盖
    公共布尔onOptionsItemSelected(
            com.actionbarsherlock.view.MenuItem项){

        开关(item.getItemId()){

        案例android.R.id.home:{
            如果(mDrawerLayout.isDrawerOpen(mDrawerList)){
                mDrawerLayout.closeDrawer(mDrawerList);
            } 其他 {
                mDrawerLayout.openDrawer(mDrawerList);
            }
            打破;
        }

        案例R.id.action_contact:
            // QuickContactFragment对话框=新QuickContactFragment();
            // dialog.show(getSupportFragmentManager(),QuickContactFragment);
            //返回true;

        }

        返回super.onOptionsItemSelected(项目);
    }

    //导航抽屉的点击侦听器的ListView
    私有类DrawerItemClickListener工具
            ListView.OnItemClickListener {
        @覆盖
        公共无效onItemClick(适配器视图<>母公司视图中查看,INT位置,
                长ID){
            选择信息(位置);
        }
    }


    @覆盖
    保护无效onPostCreate(包savedInstanceState){
        super.onPostCreate(savedInstanceState);
        //同步发生onRestoreInstanceState后切换状态。
        mDrawerToggle.syncState();
    }

    @覆盖
    公共无效onConfigurationChanged(配置NEWCONFIG){
        super.onConfigurationChanged(NEWCONFIG);
        //传递任何配置更改抽屉切换
        mDrawerToggle.onConfigurationChanged(NEWCONFIG);
    }

    私人无效选择信息(INT位置){

        开关(位置){
        情况下0:
            getSupportFragmentManager()
                    .beginTransaction()
                    。新增(R.id.content,
                            PageSlidingTabStripFragment.newInstance(),
                            PageSlidingTabStripFragment.TAG).commit();
            打破;
        默认:

            SherlockFragment片段=新PlanetFragment();
            捆绑的args =新包();
            args.putInt(PlanetFragment.ARG_PLANET_NUMBER,位置);
            fragment.setArguments(参数);

            getSupportFragmentManager()的BeginTransaction()
                    。新增(R.id.content,片段).commit();
            打破;
        }

        mDrawerLayout.closeDrawer(mDrawerList);
    }



}
 

PageSlidingTabStripFragment.java

 包com.webileapps.navdrawer;

进口android.os.Bundle;
进口android.support.v4.app.Fragment;
进口android.support.v4.app.FragmentPagerAdapter;
进口android.support.v4.view.ViewPager;
进口android.view.LayoutInflater;
进口android.view.View;
进口android.view.ViewGroup;

进口com.actionbarsherlock.app.SherlockFragment;
进口com.astuetz.PagerSlidingTabStrip;

公共类PageSlidingTabStripFragment扩展片段{

    公共静态最终字符串标记= PageSlidingTabStripFragment.class
            .getSimpleName();

    公共静态PageSlidingTabStripFragment的newInstance(){
        返回新PageSlidingTabStripFragment();
    }

    @覆盖
    公共无效的onCreate(包savedInstanceState){
        super.onCreate(savedInstanceState);
        setRetainInstance(真正的);
    }

    @覆盖
    公共查看onCreateView(LayoutInflater充气,容器的ViewGroup,
            捆绑savedInstanceState){
        返回inflater.inflate(R.layout.pager,集装箱,假);
    }

    @覆盖
    公共无效onViewCreated(查看视图,捆绑savedInstanceState){
        super.onViewCreated(查看,savedInstanceState);

        PagerSlidingTabStrip标签=(PagerSlidingTabStrip)查看
                .findViewById(R.id.tabs);
        ViewPager寻呼机=(ViewPager)view.findViewById(R.id.pager);
        MyPagerAdapter适配器=新MyPagerAdapter(getChildFragmentManager());
        pager.setAdapter(适配器);
        tabs.setViewPager(寻呼机);

    }

    公共类MyPagerAdapter扩展FragmentPagerAdapter {

        公共MyPagerAdapter(android.support.v4.app.FragmentManager FM){
            超(FM);
        }

        私人最终的String []业权= {类别,家,热门付费,
                热门免费};

        @覆盖
        公共CharSequence的getPageTitle(INT位置){
            返回TITLES [位置]
        }

        @覆盖
        公众诠释getCount将(){
            返回TITLES.length;
        }

        @覆盖
        公共SherlockFragment的getItem(INT位置){
            返回SuperAwesomeCardFragment.newInstance(位置);
        }
    }
    }
 

PlanetFragment.java

 包com.webileapps.navdrawer;

进口java.util.Locale中;

进口android.os.Bundle;
进口android.view.LayoutInflater;
进口android.view.View;
进口android.view.ViewGroup;
进口android.widget.ImageView;

进口com.actionbarsherlock.app.SherlockFragment;

公共类PlanetFragment扩展SherlockFragment {
    公共静态最后弦乐ARG_PLANET_NUMBER =planet_number;

    公共PlanetFragment(){
        需要片段子类//空构造
    }

    @覆盖
    公共查看onCreateView(LayoutInflater充气,容器的ViewGroup,
            捆绑savedInstanceState){
        查看rootView = inflater.inflate(R.layout.fragment_planet,集​​装箱,
                假);
        。INT I = getArguments()调用getInt(ARG_PLANET_NUMBER);
        。字符串星球= getResources()getStringArray(R.array.planets_array)[我]

        INT imageId = getResources()。则getIdentifier(
                planet.toLowerCase(Locale.getDefault()),可拉伸,
                。getActivity()getPackageName());
        ((ImageView的)rootView.findViewById(R.id.image))
                .setImageResource(imageId);
        getActivity()的setTitle(行星)。
        返回rootView;
    }
}
 

最后的 SuperAwesomeCardFragment.java

 包com.webileapps.navdrawer;

进口android.os.Bundle;
进口android.util.TypedValue;
进口android.view.Gravity;
进口android.view.LayoutInflater;
进口android.view.View;
进口android.view.ViewGroup;
进口android.widget.FrameLayout;
进口android.widget.FrameLayout.LayoutParams;
进口android.widget.TextView;

进口com.actionbarsherlock.app.SherlockFragment;

公共类SuperAwesomeCardFragment扩展SherlockFragment {

    私有静态最后弦乐ARG_POSITION =位置;

    私人诠释的位置;

    公共静态SuperAwesomeCardFragment的newInstance(INT位置){
        SuperAwesomeCardFragment F =新SuperAwesomeCardFragment();
        叠B =新包();
        b.putInt(ARG_POSITION,位置);
        f.setArguments(B);
        返回F;
    }

    @覆盖
    公共无效的onCreate(包savedInstanceState){
        super.onCreate(savedInstanceState);

        位置= getArguments()调用getInt(ARG_POSITION)。
    }

    @覆盖
    公共查看onCreateView(LayoutInflater充气,容器的ViewGroup,捆绑savedInstanceState){

        的LayoutParams PARAMS =新的LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT);

        的FrameLayout FL =新的FrameLayout(getActivity());
        fl.setLayoutParams(PARAMS);

        最终诠释利润率=(int)的TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,8,getResources()
                .getDisplayMetrics());

        TextView的V =新的TextView(getActivity());
        params.setMargins(保证金,保证金,保证金,保证金);
        v.setLayoutParams(PARAMS);
        v.setLayoutParams(PARAMS);
        v.setGravity(Gravity.CENTER);
        v.setBackgroundResource(R.drawable.background_card);
        v.setText(一卡通+(位置+ 1));

        fl.addView(五);
        返回佛罗里达州;
    }

}
 

希望这有助于:)

In my app I am using navigation drawer from this tutorial http://www.androidhive.info/2013/11/android-sliding-menu-using-navigation-drawer/

Now I am trying to add tabhost with fragment,but its not working

it shows error here tabss.setViewPager(mViewPager);

Cannot resolve method setviewpager(android.support.v4.view.viewpager)

public class All_Product_Details extends Fragment {


    private TabHost mTabHost;
    private ViewPager mViewPager;
    private YourAdapter mTabsAdapter;

    private Button descr;
    private TextView general_desc;
    private TextView short_desc;
    private TextView full_desc;


    private Button btn_add_to_cart;

    public All_Product_Details(){}

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        final View rootView = inflater.inflate(R.layout.all_product_detais, container, false);

        mViewPager = (ViewPager)rootView.findViewById(R.id.viewpager);
        mTabsAdapter= new YourAdapter(getFragmentManager());
        mViewPager.setAdapter(mTabsAdapter);
        TabWidget tabss = (TabWidget)rootView.findViewById(R.id.tabs);
        tabss.setViewPager(mViewPager);


        general_desc=(TextView)rootView.findViewById(R.id.general_desc);
        short_desc=(TextView)rootView.findViewById(R.id.short_desc);
        full_desc=(TextView)rootView.findViewById(R.id.full_desc);

       btn_add_to_cart=(Button)rootView.findViewById(R.id.btn_addtocart);
        btn_add_to_cart.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Add_to_cart tf = new Add_to_cart();
                android.support.v4.app.FragmentManager fm = getFragmentManager();
                android.support.v4.app.FragmentTransaction ft = fm.beginTransaction();
                ft.replace(R.id.frame_container, tf);
                ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
                ft.addToBackStack(null);
                ft.commit();
            }
        });


        short_desc.setVisibility(View.GONE);
        full_desc.setVisibility(View.GONE);
        descr=(Button)rootView.findViewById(R.id.all_prod_description);
        descr.setBackgroundResource(R.drawable.hidebackground);
        descr.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                if (flag == 0) {
                    descr.setBackgroundResource(R.drawable.showbackground);
                    //lnrallbtns.setVisibility(View.GONE);
                    general_desc.setVisibility(View.GONE);
                    flag++;
                } else {
                    descr.setBackgroundResource(R.drawable.hidebackground);
                   // lnrallbtns.setVisibility(View.VISIBLE);
                    general_desc.setVisibility(View.VISIBLE);
                    short_desc.setVisibility(View.GONE);
                    full_desc.setVisibility(View.GONE);
                    flag = 0;
                }
            }
        });

      return rootView;
    }

    public class YourAdapter extends FragmentStatePagerAdapter {
        private String[] titles = { "Item 1", "Item 2", "Item 3" };
        public YourAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int i) {
            switch(i){
                case 0:{
                    return new FragementA();
                }case 1:{
                    return new FragmentB();
                }case 2:{
                    return new FragmentC();
                }
            }
        }

        @Override
        public int getCount() {
            return titles.length;
        }

        @Override
        public CharSequence getPageTitle(int position) {
            return titles[position];
        }
    }
}

解决方案

I found and referred an awsm example called Balaji-K13 .

You can add whatever your list in here like:

Inside MainActivity.java

package com.webileapps.navdrawer;

import android.content.res.Configuration;
import android.os.Bundle;
import android.support.v4.app.ActionBarDrawerToggle;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import com.actionbarsherlock.app.SherlockFragment;
import com.actionbarsherlock.app.SherlockFragmentActivity;

public class MainActivity extends SherlockFragmentActivity {
    DrawerLayout mDrawerLayout;
    ListView mDrawerList;
    ActionBarDrawerToggle mDrawerToggle;

    private CharSequence mDrawerTitle;
    private CharSequence mTitle;
    private String[] mPlanetTitles;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mTitle = mDrawerTitle = getTitle();
        mPlanetTitles = getResources().getStringArray(R.array.planets_array);
        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
        mDrawerList = (ListView) findViewById(R.id.left_drawer);

        // set a custom shadow that overlays the main content when the drawer
        // opens
        mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow,
                GravityCompat.START);
        // set up the drawer's list view with items and click listener
        mDrawerList.setAdapter(new ArrayAdapter<String>(this,
                R.layout.drawer_list_item, mPlanetTitles));
        mDrawerList.setOnItemClickListener(new DrawerItemClickListener());

        // enable ActionBar app icon to behave as action to toggle nav drawer
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setHomeButtonEnabled(true);

        // ActionBarDrawerToggle ties together the the proper interactions
        // between the sliding drawer and the action bar app icon
        mDrawerToggle = new ActionBarDrawerToggle(this, /* host Activity */
        mDrawerLayout, /* DrawerLayout object */
        R.drawable.ic_drawer, /* nav drawer image to replace 'Up' caret */
        R.string.drawer_open, /* "open drawer" description for accessibility */
        R.string.drawer_close /* "close drawer" description for accessibility */
        ) {
            public void onDrawerClosed(View view) {
                getSupportActionBar().setTitle(mTitle);
                invalidateOptionsMenu(); // creates call to
                                            // onPrepareOptionsMenu()
            }

            public void onDrawerOpened(View drawerView) {
                getSupportActionBar().setTitle(mDrawerTitle);
                invalidateOptionsMenu(); // creates call to
                                            // onPrepareOptionsMenu()
            }
        };
        mDrawerLayout.setDrawerListener(mDrawerToggle);

        if (savedInstanceState == null) {
            selectItem(0);
        }

    }

    @Override
    public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
        return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(
            com.actionbarsherlock.view.MenuItem item) {

        switch (item.getItemId()) {

        case android.R.id.home: {
            if (mDrawerLayout.isDrawerOpen(mDrawerList)) {
                mDrawerLayout.closeDrawer(mDrawerList);
            } else {
                mDrawerLayout.openDrawer(mDrawerList);
            }
            break;
        }

        case R.id.action_contact:
            // QuickContactFragment dialog = new QuickContactFragment();
            // dialog.show(getSupportFragmentManager(), "QuickContactFragment");
            // return true;

        }

        return super.onOptionsItemSelected(item);
    }

    // The click listener for ListView in the navigation drawer
    private class DrawerItemClickListener implements
            ListView.OnItemClickListener {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position,
                long id) {
            selectItem(position);
        }
    }


    @Override
    protected void onPostCreate(Bundle savedInstanceState) {
        super.onPostCreate(savedInstanceState);
        // Sync the toggle state after onRestoreInstanceState has occurred.
        mDrawerToggle.syncState();
    }

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        // Pass any configuration change to the drawer toggles
        mDrawerToggle.onConfigurationChanged(newConfig);
    }

    private void selectItem(int position) {

        switch (position) {
        case 0:
            getSupportFragmentManager()
                    .beginTransaction()
                    .add(R.id.content,
                            PageSlidingTabStripFragment.newInstance(),
                            PageSlidingTabStripFragment.TAG).commit();
            break;
        default:

            SherlockFragment fragment = new PlanetFragment();
            Bundle args = new Bundle();
            args.putInt(PlanetFragment.ARG_PLANET_NUMBER, position);
            fragment.setArguments(args);

            getSupportFragmentManager().beginTransaction()
                    .add(R.id.content, fragment).commit();
            break;
        }

        mDrawerLayout.closeDrawer(mDrawerList);
    }



}

Inside PageSlidingTabStripFragment.java

    package com.webileapps.navdrawer;

import android.os.Bundle;
import android.support.v4.app.Fragment;
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.actionbarsherlock.app.SherlockFragment;
import com.astuetz.PagerSlidingTabStrip;

public class PageSlidingTabStripFragment extends Fragment {

    public static final String TAG = PageSlidingTabStripFragment.class
            .getSimpleName();

    public static PageSlidingTabStripFragment newInstance() {
        return new PageSlidingTabStripFragment();
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setRetainInstance(true);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        return inflater.inflate(R.layout.pager, container, false);
    }

    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);

        PagerSlidingTabStrip tabs = (PagerSlidingTabStrip) view
                .findViewById(R.id.tabs);
        ViewPager pager = (ViewPager) view.findViewById(R.id.pager);
        MyPagerAdapter adapter = new MyPagerAdapter(getChildFragmentManager());
        pager.setAdapter(adapter);
        tabs.setViewPager(pager);

    }

    public class MyPagerAdapter extends FragmentPagerAdapter {

        public MyPagerAdapter(android.support.v4.app.FragmentManager fm) {
            super(fm);
        }

        private final String[] TITLES = { "Categories", "Home", "Top Paid",
                "Top Free" };

        @Override
        public CharSequence getPageTitle(int position) {
            return TITLES[position];
        }

        @Override
        public int getCount() {
            return TITLES.length;
        }

        @Override
        public SherlockFragment getItem(int position) {
            return SuperAwesomeCardFragment.newInstance(position);
        }
    }
    }

Inside PlanetFragment.java

package com.webileapps.navdrawer;

import java.util.Locale;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

import com.actionbarsherlock.app.SherlockFragment;

public class PlanetFragment extends SherlockFragment {
    public static final String ARG_PLANET_NUMBER = "planet_number";

    public PlanetFragment() {
        // Empty constructor required for fragment subclasses
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_planet, container,
                false);
        int i = getArguments().getInt(ARG_PLANET_NUMBER);
        String planet = getResources().getStringArray(R.array.planets_array)[i];

        int imageId = getResources().getIdentifier(
                planet.toLowerCase(Locale.getDefault()), "drawable",
                getActivity().getPackageName());
        ((ImageView) rootView.findViewById(R.id.image))
                .setImageResource(imageId);
        getActivity().setTitle(planet);
        return rootView;
    }
}

And finally SuperAwesomeCardFragment.java

package com.webileapps.navdrawer;

import android.os.Bundle;
import android.util.TypedValue;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.FrameLayout.LayoutParams;
import android.widget.TextView;

import com.actionbarsherlock.app.SherlockFragment;

public class SuperAwesomeCardFragment extends SherlockFragment{

    private static final String ARG_POSITION = "position";

    private int position;

    public static SuperAwesomeCardFragment newInstance(int position) {
        SuperAwesomeCardFragment f = new SuperAwesomeCardFragment();
        Bundle b = new Bundle();
        b.putInt(ARG_POSITION, position);
        f.setArguments(b);
        return f;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        position = getArguments().getInt(ARG_POSITION);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);

        FrameLayout fl = new FrameLayout(getActivity());
        fl.setLayoutParams(params);

        final int margin = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 8, getResources()
                .getDisplayMetrics());

        TextView v = new TextView(getActivity());
        params.setMargins(margin, margin, margin, margin);
        v.setLayoutParams(params);
        v.setLayoutParams(params);
        v.setGravity(Gravity.CENTER);
        v.setBackgroundResource(R.drawable.background_card);
        v.setText("CARD " + (position + 1));

        fl.addView(v);
        return fl;
    }

}

Hope this Helped :)

这篇关于如何添加Tabhost在导航抽屉的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆