在SlidingTabLayout上设置图标大小

时间:2015-08-04 14:25:38

标签: android pagerslidingtabstrip android-icons

我创建了一个SlidingTabLayout,我使用此处的代码进行调整,以便它可以使用图标而不是文本。我的问题是图标两侧的填充物太多,导致标签条略微滚动。我有4个图标/标签。

我尝试了什么 我已经尝试过调整我想到的地方去除填充或使图标变小。

首先我在createDefaultImageView()中调整了imageView,然后调整了custom_tabs.xml中的宽度。然后我尝试调整populatedTabStrip()中的tabIconView和tabView。在传递给tabIconView.setImageDrawable()之前,我还尝试在图像上设置setBounds()。似乎没有任何改变。我可以使填充更大,但不能使其更小或减小我的图标的大小。

任何帮助将不胜感激。感谢。

悬崖笔记: 需要在slidingtablayout中调整图标大小和/或填充

我的代码:

SlidingTabLayout.java

    private void populateTabStrip() {
        //creating a new populateTabStrip to use icons
        final TroopPagerAdapter adapter = (TroopPagerAdapter) mViewPager.getAdapter();
        final View.OnClickListener tabClickListener = new TabClickListener();

        for (int i = 0; i < adapter.getCount(); i++) {
            View tabView = null;

            ImageView tabIconView = null;


            if (tabView == null) {
                tabView = createDefaultImageView(getContext());
            }

            if (tabIconView == null && ImageView.class.isInstance(tabView)) {
                tabIconView = (ImageView) tabView;

            }


            tabIconView.setImageDrawable(getResources().getDrawable(adapter.getDrawableId(i)));
            if (mViewPager.getCurrentItem() == i) {
                tabIconView.setSelected(true);
            }
            tabView.setOnClickListener(tabClickListener);


            mTabStrip.addView(tabView);
        }




    }    




    //Added in to get the icons on the slider
    protected ImageView createDefaultImageView(Context context) {
        ImageView imageView = new ImageView(context);

      int padding = (int) (TAB_VIEW_PADDING_DIPS * getResources().getDisplayMetrics().density);
        imageView.setPadding(0, 0, 4, 4);

       int width = (int) (getResources().getDisplayMetrics().widthPixels / mViewPager.getAdapter().getCount());



        return imageView;
    }

}

custom_tabs.xml:

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/tabContainer"
    android:layout_width="40dp"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tabImage"
        android:layout_gravity="center"/>

    <TextView
        android:layout_width="42dp"
        android:layout_height="wrap_content"
        android:id="@+id/tabText"
        android:gravity="bottom|center"/>

</LinearLayout>

TroopPagerAdapter.java

 public class TroopPagerAdapter extends FragmentPagerAdapter {


    int icons[] = {R.drawable.elix_barracks_tab, R.drawable.dark_barracks_tab,     R.drawable.spells_king_tab, R.drawable.setup_tab};


    @Override
    public CharSequence getPageTitle(int position) {


        return null;
    }

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

    public int getDrawableId(int position) {
        return icons[position];
    }
}

0 个答案:

没有答案