You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Toolbar中间添加EditText?布局位置异常问题求助

解决EditText嵌入Toolbar的位置问题

哦,我明白你的问题了——你想把EditText直接整合到Toolbar里,但现在它总是和Toolbar上下分开排列,根本没在同一栏里。这是因为AppBarLayout默认是垂直方向的LinearLayout,你把Toolbar和EditText直接作为它的子View,自然会上下堆叠,而不是让EditText成为Toolbar的一部分。

正确的解决方案:把EditText作为Toolbar的子View

Toolbar本身是一个ViewGroup,你可以直接在它内部添加EditText,这样就能让EditText和Toolbar共享同一栏空间了。修改你的app_bar_nav.xml,把EditText移到Toolbar标签内部,同时可以给Toolbar设置合适的布局方向来调整内部元素的排列:

<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".NavActivity">

    <com.google.android.material.appbar.AppBarLayout
        android:id="@+id/appBarLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.AppBarOverlay">

        <!-- 修改Toolbar内部布局,添加EditText作为子View -->
        <androidx.appcompat.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="@color/colorBlack"
            app:popupTheme="@style/AppTheme.PopupOverlay">

            <!-- 这里放EditText,作为Toolbar的子View -->
            <EditText
                android:id="@+id/myEditText"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@color/colorBlack"
                android:hint="Adresse"
                android:paddingHorizontal="16dp"
                android:textColorHint="@color/white" />

        </androidx.appcompat.widget.Toolbar>

    </com.google.android.material.appbar.AppBarLayout>

    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|end"
        android:layout_margin="@dimen/fab_margin"
        android:clickable="true"
        app:srcCompat="@android:drawable/ic_menu_search" />

    <include layout="@layout/content_nav" />

</androidx.coordinatorlayout.widget.CoordinatorLayout>

额外调整建议

  • 如果你的Toolbar需要保留返回按钮或者菜单图标,可以给EditText设置layout_weight="1"并把layout_width设为0dp,让它自动占满剩余空间:
    <EditText
        android:id="@+id/myEditText"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="@color/colorBlack"
        android:hint="Adresse"
        android:paddingHorizontal="16dp"
        android:textColorHint="@color/white" />
    
  • 你还可以通过android:gravity属性调整EditText内部文字的对齐方式,或者给EditText设置圆角、边框等样式,让它更贴合Toolbar的视觉风格。

这样修改后,EditText就会完全嵌入到Toolbar中,和Toolbar共享同一高度,不会再上下分开显示啦。

内容的提问来源于stack exchange,提问作者DerHammer123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:37:34