【问题标题】:Android AppBar SearchView takes all the space with no back arrowAndroid AppBar SearchView 占用所有空间,没有后退箭头
【发布时间】:2016-01-22 15:57:05
【问题描述】:

我想查看 SearchView 后面的后退箭头。 http://i.imgur.com/Xetu0L1.png XML:

<item android:id="@+id/search"
      android:title="@string/search_btn_hint"
      android:icon="@drawable/ic_action_search"
      android:titleCondensed="@string/search_btn_hint"
      app:actionViewClass="android.support.v7.widget.SearchView"
      app:showAsAction="always" />

我尝试使用“collapseActionView|ifRoom”,但它没有将焦点放在 SearchView。我的java代码给出了重点:

getMenuInflater().inflate(R.menu.search, menu);
final SearchView searchView = (SearchView) menu.findItem(R.id.search).getActionView();
searchView.setIconifiedByDefault(false); // Do not iconify the widget; expand it by default
searchView.setQueryHint("Search...");
searchView.setFocusable(true);
searchView.setIconified(false);
searchView.requestFocusFromTouch();

【问题讨论】:

    标签: java android xml searchview


    【解决方案1】:

    只需在您的 .xml 布局文件中添加一个工具栏(在我的情况下,它是一个相对布局,但这不是必需的。可以是线性布局或其他什么,只是您习惯在活动布局中使用的):

    <RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/Background"
    tools:context=".YourActivity">
            <android.support.v7.widget.Toolbar
                android:id="@+id/YOUR_TOOLBAR_ID_HERE"
                android:layout_height="?attr/actionBarSize"
                android:layout_width="match_parent"
                android:minHeight="?attr/actionBarSize"
                android:background="@color/Header"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
                android:textSize="20sp">
            </android.support.v7.widget.Toolbar>
    </RelativeLayout>
    

    在 OnCreate() 中实例化您的活动布局:

    setContentView(R.layout.your_activity_layout);
    

    在布局实例化后立即执行以下操作:

    mToolbar = (Toolbar) findViewById(R.id.YOUR_TOOLBAR_ID_HERE);
    setSupportActionBar(mToolbar);
    getSupportActionBar().setTitle(null);
    getSupportActionBar().setHomeButtonEnabled(true);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    

    将此添加到您的 java 类中的 searchview 中

    searchView.setIconifiedByDefault(false);
    

    最后是 xml 可搜索菜单项:

    <item
        android:id="@+id/action_searchable_activity"
        android:orderInCategory="1"
        android:icon="@drawable/ic_search_white_24dp"
        android:title="@string/title_activity_searchable"
        app:showAsAction="ifRoom"
        android:iconifiedByDefault="false"
        app:actionViewClass="android.support.v7.widget.SearchView"/>
    

    它对我有用。希望对您有所帮助。

    【讨论】:

    • 我应该在哪里添加工具栏菜单或活动?
    猜你喜欢
    • 1970-01-01
    • 2020-05-31
    • 2020-10-22
    • 2020-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-26
    • 1970-01-01
    相关资源
    最近更新 更多