【问题标题】:How to set FragmentTabHost dynamic height using xml or java如何使用 xml 或 java 设置 FragmentTabHost 动态高度
【发布时间】:2015-06-27 02:53:03
【问题描述】:

这是我目前使用FragmentTabHost 的代码;问题是高度没有动态变化(300dp)不兼容更大的屏幕

    <android.support.v4.app.FragmentTabHost
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/tabhost"
    android:layout_width="match_parent"
    android:layout_height="300dp" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom" />

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" />
    </LinearLayout>
    </android.support.v4.app.FragmentTabHost>

<LinearLayout 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <TextView android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="Counter counter 10:00:00"
              android:textColor="@color/red"
              android:textStyle="bold"/>
</LinearLayout>

    <RelativeLayout
        style="@style/MyActionBar"
        android:layout_width="fill_parent"
        android:layout_height="20dp"
        android:layout_weight="2"
        android:background="@color/darkactionb"
        android:gravity="bottom" >

        <ImageView
            android:id="@+id/action_bar_addtarget"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentRight="false"
            android:layout_alignParentTop="false"
            android:layout_alignWithParentIfMissing="false"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:contentDescription="@string/Login"
            android:cropToPadding="true"
            android:gravity="bottom"
            android:padding="@dimen/abc_action_bar_icon_vertical_padding_material"
            android:scaleType="fitStart"
            android:src="@drawable/custom_actionbar_icon_bottom_call_target"
            android:visibility="visible" />

        <ImageView
            android:id="@+id/action_bar_filter"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true"
            android:adjustViewBounds="false"
            android:contentDescription="@string/Login"
            android:onClick="showCallResult"
            android:padding="@dimen/abc_action_bar_icon_vertical_padding_material"
            android:src="@drawable/custom_actionbar_icon_bottom_edit_callresult"
            android:visibility="visible" />

        <ImageView
            android:id="@+id/action_bar_autodial"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:contentDescription="@string/Login"
            android:onClick="showDialpad"
            android:padding="@dimen/abc_action_bar_icon_vertical_padding_material"
            android:scaleType="center"
            android:src="@drawable/custom_actionbar_icon_bottom_home_list"
            android:visibility="visible" />

    </RelativeLayout>   
</LinearLayout>

【问题讨论】:

标签: java android xml android-fragments


【解决方案1】:

问题是 wrap_content 不起作用,当文本/图像大小变化的选项卡没有放大时?

如果是:

不知道为什么它不应用xml设置,但是如果以编程方式设置它看起来还可以,例如:

 ... some code that defines an add tabs to code FragmentTabHost ...
 for (int i = 0; i < tabhost.getTabWidget().getChildCount(); i++) {
      LinearLayout.LayoutParams params 
               = new LinearLayout.LayoutParams(                 
                    LinearLayout.LayoutParams.MATCH_PARENT,
                    LinearLayout.LayoutParams.MATCH_PARENT);
      params.weight = 50;
      tabhost.getTabWidget().getChildAt(i).setLayoutParams(params);
 }

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-13
    • 2013-06-02
    • 1970-01-01
    相关资源
    最近更新 更多