Android在TabWidget的左边添加一个图像,右边是一个edittext吗?

时间:2015-01-15 09:20:59

标签: android android-tabhost tabwidget

我想有一个如下所示的布局

Image TabName1 TabName2 TabName3 EditText

< --------------------标签内容----------------------&gt ;

我的下面的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"
        android:padding="5dp">

        <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/logo1" />

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" 
            android:showDividers="none" 
            android:background="#F0F0F0" />
        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:padding="0dp" />

        <EditText
            android:layout_weight="1"
            android:id="@+id/qsearch"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:singleLine="true"
            android:lines="1"
            android:maxLines="1"
            android:scrollHorizontally="true"
            android:ellipsize="end"
            android:inputType="text"
            android:imeOptions="actionSearch|flagNoExtractUi" >
            <requestFocus />
        </EditText>     

    </LinearLayout>

</TabHost>

2 个答案:

答案 0 :(得分:1)

试试这个..

您将framelayout身高设置为fill parent,因此您的edittext不可见。

如果您想要水平视图,则只需设置android:orientation="horizontal"

如果您使用重量属性,如果您的方向是垂直设置高度为0dp,如果您的方向是水平设置权重为0dp并指定权重..

    <?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:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >

        <LinearLayout
            android:id="@+id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:padding="5dp" >

            <ImageView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:src="@drawable/ic_launcher" />

            <TabWidget
                android:id="@android:id/tabs"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="#F0F0F0"
                android:showDividers="none" />

            <EditText
                android:id="@+id/qsearch"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:ellipsize="end"
                android:imeOptions="actionSearch|flagNoExtractUi"
                android:inputType="text"
                android:lines="1"
                android:maxLines="1"
                android:scrollHorizontally="true"
                android:singleLine="true"
                android:text="sdfsf" >

                <requestFocus />
            </EditText>
        </LinearLayout>

        <RelativeLayout
            android:id="@+id/content"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
             >

            <FrameLayout
                android:id="@android:id/tabcontent"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:padding="0dp" />

        </RelativeLayout>
    </LinearLayout>

</TabHost>

答案 1 :(得分:1)

android:weightSum设置为父布局并划分子布局是一个好习惯,您也可以通过更改子布局中android:layout_weight属性的值来划分布局

我刚刚划分了布局,您可以相应地更改重量值

<?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:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >

        <LinearLayout
            android:id="@+id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:padding="5dp"
            android:weightSum="5" >

            <ImageView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:src="@drawable/ic_launcher" />

            <TabWidget
                android:id="@android:id/tabs"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="2"
                android:background="#F0F0F0"
                android:showDividers="none" />

            <EditText
                android:id="@+id/qsearch"
                android:layout_width="0dp"
                android:layout_height="fill_parent"
                android:layout_weight="2"
                android:ellipsize="end"
                android:imeOptions="actionSearch|flagNoExtractUi"
                android:inputType="text"
                android:lines="1"
                android:maxLines="1"
                android:scrollHorizontally="true"
                android:singleLine="true"
                android:text="sdfsf" >

                <requestFocus />
            </EditText>
        </LinearLayout>

        <RelativeLayout
            android:id="@+id/content"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
             >

            <FrameLayout
                android:id="@android:id/tabcontent"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:padding="0dp" />

        </RelativeLayout>
    </LinearLayout>

</TabHost>

希望这会有所帮助。