How to add padding to a tabs label?

前端 未结 3 897
死守一世寂寞
死守一世寂寞 2020-12-20 04:30

I just started programming for android. I\'m using a tab based layout in my app. I would like to put some padding around the tab label so that it\'s not so close to the icon

相关标签:
3条回答
  • 2020-12-20 04:51

    A simpler solution is :

     for (int i = 0; i < tabHost.getTabWidget().getChildCount(); i++) {
         tabHost.getTabWidget().getChildAt(i).setPadding(10,10,10,10); 
     }
    
    0 讨论(0)
  • 2020-12-20 05:04
    tabHost.addTab(tabHost.newTabSpec("tab1").setContent(
                new Intent(this, DealCities.class)).setIndicator(prepareTabView("Deals",R.drawable.deal)));
    

    Where prepareTabView is a method.. In these method Inflate a view and add Image and Text as follows :

    private View prepareTabView(String text, int resId) {
        View view = LayoutInflater.from(this).inflate(R.layout.tabs, null);
        ImageView iv = (ImageView) view.findViewById(R.id.TabImageView);
        TextView tv = (TextView) view.findViewById(R.id.TabTextView);
        iv.setImageResource(resId);
        tv.setText(text);
        return view;
    }
    

    Where tabs is the inflated view and its xml as follows :

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:id="@+id/TabLayout"  android:background="@drawable/tab_bg_selector"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
     android:gravity="center"
    padding="5dip">
    
    
    <ImageView android:id="@+id/TabImageView" android:src="@drawable/icon"
        android:layout_width="wrap_content" android:layout_height="wrap_content"/>
    <TextView android:id="@+id/TabTextView" android:text="Text"
        android:paddingTop="5dip" android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:textColor="@color/black"
        android:textAppearance="@style/TabTextViewStyle" />
    </LinearLayout>
    

    Now you can make Your Paddings as you like..

    0 讨论(0)
  • 2020-12-20 05:05

    just use this code

        TabWidget widget = mTabHost.getTabWidget();
        for (int i = 0; i < widget.getChildCount(); i++) {
    
            //adjust height
            widget.getChildAt(i).getLayoutParams().height =40;
    
           //adjust textview
            TextView tv = (TextView) widget.getChildAt(i).findViewById(android.R.id.title);
            if (tv == null) {
                continue;
            }           
            tv.setAllCaps(false);
            tv.setTextSize(15);
    
            //set padding
            tv.setPadding(10,5, 10, 5);
    
        }
    
    0 讨论(0)
提交回复
热议问题