Вкладки Android без значков - PullRequest
       24

Вкладки Android без значков

7 голосов
/ 09 сентября 2011

Я настроил свои вкладки следующим образом:

 spec = tabHost.newTabSpec("tab1").setIndicator("Tab 1").setContent(intent);
    tabHost.addTab(spec);

И теперь у меня есть вкладка, на которой нет иконки, только заголовок, но она оставляет пустое пространство размером с значок с заголовком внизу - я попытался настроить layout_height в xml, но затем текст исчез потому что он отображается ниже точки отсечения.

Как изменить размер вкладки и отобразить заголовок без значка?

Ответы [ 4 ]

11 голосов
/ 09 сентября 2011

Ответ прост: вы не можете.Вкладка Android по умолчанию всегда оставит некоторое пустое место для изображения.Но вы можете создавать свои собственные вкладки, чтобы компенсировать это «ограничение» на вкладке по умолчанию.Вот очень хороший учебник для создания пользовательских вкладок.

http://joshclemm.com/blog/?p=136

Удачи, Arkde

2 голосов
/ 22 сентября 2011

Изменение TabWidget layout_height и gravity в xml работало для меня.Текст не центрируется на вкладке, а выровнен по нижней части, как и раньше.

<TabWidget android:id="@android:id/tabs"
  android:layout_width="fill_parent" android:layout_height="40dp"
  android:gravity="bottom" />
1 голос
/ 09 сентября 2011

Измените размер табуляции от макета и только для отображения. Пишите код на вкладке Tile согласно приведенным ниже фрагментам кода

tabhost=getTabHost();


intent = new Intent(this,MainActivity.class);
spec1 = tabhost.newTabSpec("").setIndicator("main_tab");
spec1.setContent(intent);
tabhost.addTab(spec1);

intent = new Intent(this,xyz.class);
spec2 = tabhost.newTabSpec("").setIndicator("first_tab");
spec2.setContent(intent);
tabhost.addTab(spec2);
0 голосов
/ 19 июня 2013
// Center text displayed on a first tab
View view = _tabHost.getTabWidget().getChildAt(0);
if (view != null) {
    // Hide icon
    View tabImage = view.findViewById(android.R.id.icon);
    if (tabImage != null) {
        tabImage.setVisibility(View.GONE);
    }
    // Find text
    TextView tabTitle = (TextView) view.findViewById(android.R.id.title);
    if (tabTitle != null) {
        // Change text gravity
        tabTitle.setGravity(Gravity.CENTER);
        // Remove text view from it's parent and re-add back to reset layout parameters
        ViewGroup parent = (ViewGroup) tabTitle.getParent();
        parent.removeView(tabTitle);
        parent.addView(tabTitle);
        // New default layout parameters will have height set to WRAP_CONTENT, change it to MATCH_PARENT
        ViewGroup.LayoutParams params = tabTitle.getLayoutParams();
        params.height = ViewGroup.LayoutParams.MATCH_PARENT;
    }
}
...