2015-10-13 58 views
1

我有一个Android搜索查看像这样 -Android的搜索查看 - 移动图标向右(无动作条)

<SearchView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:queryHint="Search the forum ..." 
     android:iconifiedByDefault="true" 
     android:id="@+id/search_forum" 
     android:layout_alignParentRight="true" 
     android:textColor="#aaa" /> 

这不是我的动作条,这是别的地方我的活动。

我需要图标(搜索图标)留在我的布局的右侧。点击它应该展开到SearchView(与ActionBar SearchView相同的行为)。我试过android:layout_alignParentRight="true",但图标停留在左侧。

任何帮助将是巨大的:)

回答

1

我无法找到一个确切的答案,这让我没有这个 - 创建与搜索图标的形象图。放置在我的布局的右侧。 单击时,使搜索视图可见并将图标化设置为false并请求搜索视图的焦点。

如果有人能最终帮我找到适当的解决方案,我会很感激。

0

将SearchView添加为菜单项而不是工具栏元素固有地解决了问题。

一种高贵的方式来做到这一点:

步骤1 - 添加搜索文本框您工具栏:

<item 
    android:id="@+id/action_search" 
    android:icon="@android:drawable/ic_menu_search" 
    app:showAsAction="always|collapseActionView" 
    app:actionViewClass="android.support.v7.widget.SearchView" 
    android:title="Search"/> 

第二步 - 逻辑添加到您的onCreateOptionsMenu()

import android.support.v7.widget.SearchView; // not the default ! 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.main, menu); 

    MenuItem myActionMenuItem = menu.findItem(R.id.action_search); 
    searchView = (SearchView) myActionMenuItem.getActionView(); 
    searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { 
     @Override 
     public boolean onQueryTextSubmit(String query) { 
      UserFeedback.show("SearchOnQueryTextSubmit: " + query); 
      if(! searchView.isIconified()) { 
       searchView.setIconified(true); 
      } 
      myActionMenuItem.collapseActionView(); 
      return false; 
     } 
     @Override 
     public boolean onQueryTextChange(String s) { 
      // UserFeedback.show("SearchOnQueryTextChanged: " + s); 
      return false; 
     } 
    }); 
    return true; 
} 

来源:https://stackoverflow.com/a/34255229/384564

0

尝试这种方式,将工作

SearchView search = (SearchView) item.getActionView(); 
    search.setLayoutParams(new ActionBar.LayoutParams(Gravity.RIGHT)); 
2

如果问题仍未得到解决:

只是移动搜索查看到的RelativeLayout,并使其与父的右侧:

<RelativeLayout 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 
<android.support.v7.widget.SearchView 
    android:layout_width="wrap_content" 
    android:id="@+id/searchView" 
    android:layout_alignParentRight="true" 
    android:layout_height="match_parent" /> 

最后的结果是这样的:

CardView with Linearlayout containing aligned SearchView