【问题标题】:Android SearchView change cursor position after hint iconAndroid SearchView 在提示图标后更改光标位置
【发布时间】:2016-06-15 09:34:52
【问题描述】:

我正在使用 android.support.v7.widget.SearchView,提示图标位于光标左侧,如图所示。

但我想让光标在提示搜索图标之后开始。

XML:

 <android.support.v7.widget.SearchView
                android:id="@+id/airlines_searchView"
                android:iconifiedByDefault="false"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="15dp"
                android:onClick="EnableSearchView"
                android:background="#fbf7f7"
                />

我得到了搜索视图的 EditText 如下:

EditText search_text=(EditText) searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text);

我不知道设置它所需的属性是什么。

我检查了That,但没有找到解决方案,请帮忙?

【问题讨论】:

  • 所以你想要光标左侧的搜索图标吗??
  • 正是我想要的
  • 请检查我的回答,如果不是你想要的,请告诉我。

标签: android searchview


【解决方案1】:

必须将android:iconifiedByDefault 更改为app:iconifiedByDefault

并添加这两行以避免在启动活动时启动键盘,并且仅在单击搜索视图后才会显示

android:focusable="false"
android:focusableInTouchMode="true"

所以试试这个:

 <android.support.v7.widget.SearchView
            android:id="@+id/airlines_searchView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:imeOptions="actionDone"
            android:textStyle="normal"
            android:layout_marginTop="15dp"
            android:background="#fbf7f7"
            android:focusable="false"
            android:focusableInTouchMode="true"
            app:iconifiedByDefault="false"/>

【讨论】:

  • 我试过了,光标在搜索图标之后,但搜索视图默认处于活动状态,键盘在开始活动时打开,但我希望它只有在点击后才处于活动状态。跨度>
  • 那你设置app:iconifiedByDefault="true",就可以了!
  • 也更新了答案,如果有效,请接受答案,如果无效,请告诉我!
  • 更改后我又得到了旧视图,如上图所示
  • 按照我更新的答案,它会告诉你在页面加载后隐藏键盘,这样搜索视图几乎和不活动一样好。
【解决方案2】:

将图标化的搜索视图默认设置为点击时为假,关闭搜索视图时设置为真

    searchView.setOnSearchClickListener( new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            searchView.setIconifiedByDefault( false );

        }
    } );

    searchView.setOnQueryTextListener( new android.support.v7.widget.SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String query) {
            //do search
        }

        @Override
        public boolean onQueryTextChange(String newText) {
            //do search
        }
    } );

    searchView.setOnCloseListener( new android.support.v7.widget.SearchView.OnCloseListener() {
        @Override
        public boolean onClose() {
            searchView.setIconifiedByDefault( true );

        }
    } );

【讨论】:

    【解决方案3】:
    <android.support.v7.widget.SearchView
                    android:id="@+id/airlines_searchView"
                    app:iconifiedByDefault="false"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="15dp" 
                    android:background="#fbf7f7"
                    />
    

    而不是 android:iconifiedByDefault="false" 设置 app:iconifiedByDefault="false"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-12
      • 1970-01-01
      • 1970-01-01
      • 2011-04-16
      相关资源
      最近更新 更多