Android TabHost контент не отображается - PullRequest
0 голосов
/ 02 января 2012

Я создал TabHost и назначил 4 намерения активности с вкладками, и они, кажется, работают просто отлично.Моя единственная проблема заключается в том, что содержание активности не отображается в рамке #tabcontent в моем представлении табуляции.

Я следовал официальной ссылке и сканировал Интернет в поисках решения, но не вижу, в чем проблемаis.

Log.v («Activity», «Reports») регистрируется в ant, поэтому он выполняет действие.Поэтому я предполагаю, что это setContentView () в моей ReportActivity, которая вызывает проблему.Но я новичок в этом, поэтому я не могу сказать.(Там нет сгенерированных ошибок)

Это мой tabhost

<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@android:id/tabhost"
    android:background="#FFFFFF">

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="#FFFFFF">

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="0" />

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:padding="5sp"
            android:layout_weight="1" />

    </LinearLayout>

</TabHost>

Это то, как я добавляю вкладки в моей TabActivity

// Glob
Intent intent;
TabHost tabHost = getTabHost();
TabHost.TabSpec spec;
Resources res = getResources();

// Reports tab
intent = new Intent().setClass(this, ReportsActivity.class);
spec = tabHost.newTabSpec("reports")
        .setIndicator(
                res.getText(R.string.reports),
                res.getDrawable(R.drawable.reports))
        .setContent(intent);
tabHost.addTab(spec);

И это моя активность содержимого(R.layout.reports = linearlayout с просмотром текста)

public class ReportsActivity extends Activity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.reports);

        Log.v("Activity", "Reports");
    }
}

Ответы [ 2 ]

0 голосов
/ 06 марта 2013

Это потому, что вы выбрали LinearLayout, который по умолчанию установлен в горизонтальное расположение. Если в теге LinearLayout установить android: direction = "vertical", это должно решить вашу проблему

0 голосов
/ 02 января 2012

Попробуйте реализовать ваш TabSpec следующим образом:

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

spec = tabHost.newTabSpec("reports")
              .setIndicator(
                  res.getText(R.string.reports),
                  res.getDrawable(R.drawable.reports))
              .setContent(intent);
...