Searchview与工具栏中的自定义标题重叠。怎么预防?

mcfly软

我的工具栏包含:

  • 我在工具栏开始时的视图
  • 然后是标准的图标化搜索视图,可以通过单击搜索图标来展开它:

在此处输入图片说明

单击图标展开搜索时,它与标题重叠:

在此处输入图片说明

如何才能将搜索视图仅扩展到“我的标题”的末尾?

主要布局:

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

    <com.google.android.material.appbar.AppBarLayout
        android:id="@+id/home_appbarLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:elevation="0dp">

        <androidx.appcompat.widget.Toolbar
            android:id="@+id/app_toolbar"
            android:layout_width="match_parent"
            android:layout_height="44dp"
            android:theme="@style/myToolbarTheme"
            app:contentInsetLeft="0dp"
            app:contentInsetStart="5dp"
            app:contentInsetStartWithNavigation="0dp"
            app:popupTheme="@style/myToolbarTheme"
            app:title="">

            <include layout="@layout/toolbar_title" />
        </androidx.appcompat.widget.Toolbar>

        <include layout="@layout/toolbar_tabs" />
    </com.google.android.material.appbar.AppBarLayout>

    <ViewFlipper .....

工具栏标题布局:包含在Mainlayout中

<ImageView
    android:id="@+id/current_view_icon"
    android:layout_width="@dimen/toolbar_view_icon"
    android:layout_height="@dimen/toolbar_view_icon"
    android:layout_alignParentLeft="true"
    android:layout_marginLeft="10dp"
    app:srcCompat="@drawable/ic_chronology" />


<TextView
    android:id="@+id/appbar_date"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="10dp"
    android:layout_marginTop="5dp"
    android:gravity="center_vertical"
    android:text="MY TITLE"
    android:textColor="@color/navigation_inner_color"
    android:textSize="22dp" />

代码中的膨胀菜单:

AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
appToolbar = context.findViewById(R.id.app_toolbar);
((AppCompatActivity) context).setSupportActionBar(appToolbar);
appToolbar.inflateMenu(R.menu.main_menu);

R.menu.main_menu与快速搜索:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <item
        android:id="@+id/app_bar_search"
        android:icon="@drawable/ic_search_black_24dp"
        android:title="Search"
        app:actionViewClass="mypackage.toolbar.ArrayAdapterSearchView"
        app:showAsAction="always" />
    <item
        android:id="@+id/app_bar_bookmark"
        android:icon="@drawable/ic_bookmark"
        android:title="Bookmark"
        app:showAsAction="always" />
    <item
        android:id="@+id/app_bar_menuitem_settings"
        android:title="Settings"
        app:showAsAction="never" />
</menu>
ShreeshaDas

我认为您有2种选择,

在样式中将宽度设置为SearchView

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="searchViewStyle">@style/MySearchViewStyle</item>
</style>

<style name="MySearchViewStyle" parent="Widget.AppCompat.SearchView">
    <item name="android:maxWidth">140dp</item>
</style>

第二个选择是获取SeachView实例,onCreateOptionsMenu然后计算您要toolbar_title layout设置的剩余宽度到搜索栏的宽度。

@Override
public boolean onCreateOptionsMenu(Menu menu)
{
   getMenuInflater().inflate(R.menu.menu, menu);
   MenuItem searchItem = menu.findItem(R.id.action_search);
   SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
   searchView.setMaxWidth(calculatedWidth);
   return super.onCreateOptionsMenu(menu);
}

但按照android标准,搜索视图必须在工具栏中完全扩展。为此,我们必须使用searchView.setMaxWidth(Integer.MAX_VALUE);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

自定义工具栏中的居中标题

来自分类Dev

Android工具栏中的自定义图标

来自分类Dev

工具栏中的Summernote角度自定义按钮

来自分类Dev

Swift中的自定义/通用工具栏

来自分类Dev

工具栏中的Summernote角度自定义按钮

来自分类Dev

在片段中将SearchView添加到自定义工具栏

来自分类Dev

Android自定义工具栏菜单项标题颜色和样式

来自分类Dev

使用剑道工具栏和剑道工具栏按钮在剑道网格中添加自定义按钮

来自分类Dev

如何在stimulsoft工具中向工具栏添加自定义图标

来自分类Dev

如何在页面标记中定义自定义ckeditor工具栏

来自分类Dev

如何在页面标记中定义自定义ckeditor工具栏

来自分类Dev

当启用后退按钮或hamberger Button时,位于工具栏标题末尾的自定义工具栏侧面textView被分离

来自分类Dev

在工具栏右侧添加自定义视图

来自分类Dev

如何自定义Xamarin Studio工具栏?

来自分类Dev

android工具栏上的自定义字体

来自分类Dev

Android Lollipop工具栏与自定义视图

来自分类Dev

带有Summernote的自定义工具栏

来自分类Dev

MediaWiki的自定义浮动工具栏

来自分类Dev

自定义工具栏android

来自分类Dev

Android自定义工具栏文本按钮

来自分类Dev

自定义vue2-editor工具栏

来自分类Dev

自定义iOS VKB工具栏

来自分类Dev

如何自定义gvim工具栏?

来自分类Dev

Android自定义材料设计工具栏

来自分类Dev

如何获取工具栏的自定义视图

来自分类Dev

IvoryCKEditorBundle:如何自定义工具栏项?

来自分类Dev

自定义工具栏问题

来自分类Dev

无法自定义django-ckeditor工具栏

来自分类Dev

如何自定义 VsCode 工具栏