具有编辑文本的自定义工具栏布局

时间:2018-06-19 11:31:17

标签: android toolbar

我使用edittext为工具栏创建了自定义布局,但是它不适用于工具栏。 我需要这样的工具栏

但是得到了这个输出

我需要全角edittext。帮我实现这个目标

  

我的XML代码

<android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="?attr/colorPrimary"
            android:gravity="center"
            app:contentInsetStart="0dp"
            app:layout_scrollFlags="scroll|enterAlways"
            app:navigationIcon="@drawable/icon_toolbar_back"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Dark"
            app:theme="@style/ThemeOverlay.AppCompat.Dark"
            app:titleTextAppearance="@style/ToolbarTextAppearance">

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

                <ImageView
                    android:id="@+id/imgActionLogo"
                    android:layout_width="match_parent"
                    android:layout_height="45dp"
                    android:layout_gravity="center"
                    android:src="@drawable/common_google_signin_btn_icon_dark" />

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="@dimen/_25sdp"
                    android:layout_marginBottom="@dimen/_5sdp"
                    android:layout_marginLeft="@dimen/_10sdp"
                    android:layout_marginRight="@dimen/_10sdp"
                    android:background="@drawable/toolbar_search_bg"
                    android:gravity="center"
                    android:orientation="horizontal"
                    android:paddingLeft="@dimen/_5sdp"
                    android:paddingRight="@dimen/_5sdp"
                    app:layout_scrollFlags="scroll|enterAlways">

                    <ImageView
                        android:layout_width="@dimen/_20sdp"
                        android:layout_height="@dimen/_20sdp"
                        android:src="@drawable/icon_search" />

                    <EditText
                        android:id="@+id/etSearch"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:layout_marginLeft="@dimen/_5sdp"
                        android:background="@null"
                        android:editable="false"
                        android:hint="Search More Products..."
                        android:textColorHint="@color/text_medium"
                        android:textSize="@dimen/_10sdp" />
                </LinearLayout>
            </LinearLayout>
        </android.support.v7.widget.Toolbar>

我也在Google上进行了搜索,但无法实现这一目标。

2 个答案:

答案 0 :(得分:0)

使用工具栏时,它将在菜单图标后添加一些边距空间。因此,您必须在工具栏下方添加具有相同背景色父级的搜索视图,并在有任何滚动条的情况下对其进行修复,然后在搜索布局的下方添加该滚动条。试试这个。

<LinearLayout
      android:layout_width="match_parent"
      android:layout_height="@dimen/_25sdp"
      android:background="?attr/colorPrimary"
      android:orientation="vertical">

        <android.support.v7.widget.Toolbar
                    android:id="@+id/toolbar"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:background="?attr/colorPrimary"
                    android:gravity="center"
                    app:contentInsetStart="0dp"
                    app:layout_scrollFlags="scroll|enterAlways"
                    app:navigationIcon="@drawable/icon_toolbar_back"
                    app:popupTheme="@style/ThemeOverlay.AppCompat.Dark"
                    app:theme="@style/ThemeOverlay.AppCompat.Dark"
                   app:titleTextAppearance="@style/ToolbarTextAppearance">

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

                        <ImageView
                            android:id="@+id/imgActionLogo"
                            android:layout_width="match_parent"
                            android:layout_height="45dp"
                            android:layout_gravity="center"                            
                android:src="@drawable/common_google_signin_btn_icon_dark"/>                           
                   </LinearLayout>
                </android.support.v7.widget.Toolbar>
                   <FrameLayout
                            android:layout_width="match_parent"
                            android:layout_height="@dimen/_25sdp"
                            android:background="?attr/colorPrimary">
                         <LinearLayout
                            android:layout_width="match_parent"
                            android:layout_height="@dimen/_25sdp"                                           
                            android:layout_marginBottom="@dimen/_5sdp"
                            android:layout_marginLeft="@dimen/_10sdp"
                            android:layout_marginRight="@dimen/_10sdp"
                            android:background="@drawable/toolbar_search_bg"
                            android:gravity="center"
                            android:orientation="horizontal"
                            android:paddingLeft="@dimen/_5sdp"
                            android:paddingRight="@dimen/_5sdp"
                            app:layout_scrollFlags="scroll|enterAlways">

                            <ImageView
                                android:layout_width="@dimen/_20sdp"
                                android:layout_height="@dimen/_20sdp"
                                android:src="@drawable/icon_search" />

                            <EditText
                                android:id="@+id/etSearch"
                                android:layout_width="match_parent"
                                android:layout_height="match_parent"
                                android:layout_marginLeft="@dimen/_5sdp"
                                android:background="@null"
                                android:editable="false"
                                android:hint="Search More Products..."
                                android:textColorHint="@color/text_medium"
                                android:textSize="@dimen/_10sdp" />
                        </LinearLayout>
    </FrameLayout>
</LinearLayout>

答案 1 :(得分:0)

如果您使用app:navigationIcon和/或菜单项,则工具栏的内部内容将缩小。

您可以省略app:navigationIcon和菜单项,并在工具栏中创建自己的按钮。

然后设置

<android.support.v7.widget.Toolbar
    ...
    app:contentInsetRight="0dp"
    app:contentInsetLeft="0dp">
 ...
 </android.support.v7.widget.Toolbar>

应该让您更好地控制内容填充