Android ICS неправильно отображает вкладки - PullRequest
0 голосов
/ 05 января 2012

У меня есть приложение, использующее TabActivity, но оно неправильно отображается в ICS. На самом деле не интересует ActionBar или Fragments в качестве решения, поскольку вкладки по-прежнему работают для моих и других приложений.

Вот как это выглядит на всех других версиях андроида (желаемый вид) http://i44.tinypic.com/fb9jya.png

и вот как это выглядит на ICS, неверно.

http://i44.tinypic.com/35btjl2.png

вот мой код табуляции, что нужно изменить?

    intent = new Intent().setClass(this, HomeMenuGroup.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    spec = tabHost.newTabSpec("homeMenuGroup").setIndicator(li.inflate(R.layout.main_tabs_home, tabHost.getTabContentView(), false))
            .setContent(intent);
    tabHost.addTab(spec);

    // Do the same for the other tabs
    intent = new Intent().setClass(this, BuyTicketsGroup.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    spec = tabHost.newTabSpec("buyTicketsGroup").setIndicator(li.inflate(R.layout.main_tabs_buy, tabHost.getTabContentView(), false))
            .setContent(intent);
    tabHost.addTab(spec);

    intent = new Intent().setClass(this, UseTicketsGroup.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    spec = tabHost.newTabSpec("useTicketsGroup").setIndicator(li.inflate(R.layout.main_tabs_use, tabHost.getTabContentView(), false))
            .setContent(intent);
    tabHost.addTab(spec);

    intent = new Intent().setClass(this, MyAccountGroup.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    spec = tabHost.newTabSpec("myAccountGroup").setIndicator(li.inflate(R.layout.main_tabs_account, tabHost.getTabContentView(), false))
            .setContent(intent);
    tabHost.addTab(spec);

а вот одна из моих вкладок с раскладкой кнопок xml R.layout.main_tabs_account

 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"      android:layout_width="wrap_content" android:layout_height="wrap_content">
<TextView android:background="@drawable/switcher_account"
      android:layout_width="80dip"
      android:layout_height="60dip"/>
 </LinearLayout>

1 Ответ

2 голосов
/ 06 января 2012

Трудно дать вам окончательный ответ. Например, указанный вами макет R.layout.main_tabs_account не включает ImageView, который отображается на снимке экрана, что указывает на то, что что-то не синхронизировано в вашем вопросе.

Как говорится, вот что я бы попробовал:

  • Переместите ваши размеры от TextView до LinearLayout. Ваш текст не должен иметь разрешение 80x60; ваши вкладки предположительно:

  • Рассмотрите возможность размещения макета, содержащего ваши TabHost и TabWidget, поскольку это может предложить больше подсказок.

  • Взгляните на этот проект , где я использую настраиваемые вкладки и посмотрим, поможет ли вам что-нибудь в том, как я к ним подхожу. Этот проект отлично работает на Android 4.0.

...