Как установить высоту вкладки в XML-файле макета? - PullRequest
2 голосов
/ 19 июля 2011

Я использовал для:

tabHost.getTabWidget().getChildAt(0).getLayoutParams().height =50;

чтобы установить высоту моей вкладки.

Но я бы хотел переместить эту настройку высоты вкладки из кода Java в макет XML-файлов с целью использования другого значения высоты для layout / main.xml и layout-large / main. xml

У меня вопрос, как установить высоту вкладки в XML-файле?

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

        <LinearLayout
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">
            <TabWidget
                android:id="@android:id/tabs"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content" />
            <FrameLayout
                android:id="@android:id/tabcontent"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent">


        </FrameLayout>
      </LinearLayout>
</TabHost>

Ответы [ 2 ]

2 голосов
/ 19 июля 2011

Вы можете указать высоту вкладки в DIP, что вам когда-либо нужно. Вы можете использовать окно свойств или напрямую в файле .Xml.

          <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="50dip" />
0 голосов
/ 18 июля 2013

Дополнительно установить высоту в xml

<TabWidget
            android:id="@android:id/tabs"
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="@dimen/tab_height" />

Я также сделал некоторые действия в коде

int height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, res.getDimension(R.dimen.tab_height), res.getDisplayMetrics());
    for (int i=0; i<mTabHost.getTabWidget().getTabCount(); i++)
    {
        mTabHost.getTabWidget().getChildAt(i).getLayoutParams().height = height;
    }

Это делает правильные высоту вкладки и положение линии синей полосы. Без кода Java синяя линия может появиться на растянутых вкладках.

...