Android 在 TabWidget 的左侧添加一个图像并在其右侧添加一个编辑文本?

Android adding an image to the left of TabWidget and an edittext right of it?

我想要如下布局

Image TabName1 TabName2 TabName3 EditText

<-------------------- 选项卡内容-------------------- >

我下面的 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>

试试这个..

您将 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>

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>

希望这对您有所帮助。