如何在滑动选项卡布局中添加图像和文本

时间:2015-08-18 11:06:59

标签: android android-tabs android-tablelayout

我在我的应用程序中使用滑动标签布局,它只显示文本,但我想在标签中添加图像。我找到了一个仅带图像的slidingtablayout示例,但我想在选项卡中添加图像和文本。

以下是ViewPagerAdapter类的代码

public class ViewPagerAdapter extends FragmentStatePagerAdapter {

CharSequence Titles[]; // This will Store the Titles of the Tabs which are Going to be passed when ViewPagerAdapter is created
int NumbOfTabs; // Store the number of tabs, this will also be passed when the ViewPagerAdapter is created
int icon[];

// Build a Constructor and assign the passed Values to appropriate values in the class
public ViewPagerAdapter(FragmentManager fm,CharSequence mTitles[], int mNumbOfTabsumb) {
    super(fm);

    this.Titles = mTitles;
    this.NumbOfTabs = mNumbOfTabsumb;
    this.icon = icon;

}

//This method return the fragment for the every position in the View Pager
@Override
public Fragment getItem(int position) {

    switch (position) {

        // Open FragmentTab1.java
        case 0:
            tab1 fragmenttab1 = new tab1();

            return fragmenttab1;

        // Open FragmentTab2.java
        case 1:
            tab2 fragmenttab2 = new tab2();
            return fragmenttab2;

        case 2:
            tab3 fragment = new tab3();
            return fragment;
    }
    return null;

}

// This method return the titles for the Tabs in the Tab Strip

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

// This method return the Number of tabs for the tabs Strip

@Override
public int getCount() {
    return NumbOfTabs;
}


}

Home class的代码

public class Home extends Fragment {

ViewPager pager;
ViewPagerAdapter adapter;
SlidingTabLayout tabs;
CharSequence Titles[] = {"tab1", "tab2", "tab3"};
int Numboftabs = 3;
public Home() {
    // Required empty public constructor
}

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

}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.home, container, false);

    ((MainActivity) getActivity()).getSupportActionBar().setTitle("Home");
    // Creating The ViewPagerAdapter and Passing Fragment Manager, Titles fot the Tabs and Number Of Tabs.
    adapter = new ViewPagerAdapter(getFragmentManager(), Titles, Numboftabs);

    // Assigning ViewPager View and setting the adapter
    pager = (ViewPager) rootView.findViewById(R.id.pager);
    pager.setAdapter(adapter);

    // Assiging the Sliding Tab Layout View
    tabs = (SlidingTabLayout) rootView.findViewById(R.id.tabs);
    tabs.setDistributeEvenly(false); // To make the Tabs Fixed set this true, This makes the tabs Space Evenly in Available width

    // Setting Custom Color for the Scroll bar indicator of the Tab View
    tabs.setCustomTabColorizer(new SlidingTabLayout.TabColorizer() {
        @Override
        public int getIndicatorColor(int position) {
            return getResources().getColor(R.color.tabsScrollColor);

        }
    });

    // Setting the ViewPager For the SlidingTabsLayout
    tabs.setViewPager(pager);
    return rootView;
}

XML代码     

<com.example.niroj.navigation.tab.SlidingTabLayout
    android:id="@+id/tabs"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:elevation="2dp"
    android:background="@color/ColorPrimary"/>

<android.support.v4.view.ViewPager
    android:id="@+id/pager"

    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:layout_weight="1" >

    </android.support.v4.view.ViewPager>

 </LinearLayout>

0 个答案:

没有答案