【问题标题】:SearchView Widget not showing up in Action BarSearchView 小部件未显示在操作栏中
【发布时间】:2013-08-26 18:02:45
【问题描述】:

这可以认为是这个Question的扩展

我在代码中添加了以下内容以获取 searchView 小部件

res/menu/main_activity_actions.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <!-- Search, should appear as action button -->
    <item android:id="@+id/action_search"
          android:icon="@drawable/ic_action_search"
          android:title="@string/action_search"
          android:showAsAction="always"
          android:actionViewClass="android.support.v7.widget.SearchView" />
    <!-- Settings, should always be in the overflow -->
    <item android:id="@+id/action_settings"
          android:title="@string/action_settings"
          android:showAsAction="never" />
</menu>

Mainactivity.java

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.main_activity_actions, menu);
        MenuItem searchItem = menu.findItem(R.id.action_search);
        SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
        System.out.println("TESTING:    "+searchView);



        return super.onCreateOptionsMenu(menu);
    }

---
---

}

应用程序显示正常,但触摸搜索按钮时没有显示任何内容。

已将 SDK 版本设置如下:(4.0.3 -4.2.2)

android:minSdkVersion="15"
android:targetSdkVersion="17"

【问题讨论】:

    标签: android android-actionbar android-4.2-jelly-bean searchview


    【解决方案1】:

    将菜单更改为,

    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android" 
        xmlns:yourapp="http://schemas.android.com/apk/res-auto">
    
        <item android:id="@+id/action_search"
              android:icon="@drawable/ic_action_search"
              android:title="@string/action_search"
              yourapp:actionViewClass="android.support.v7.widget.SearchView"
              yourapp:showAsAction="always" />
    
    </menu>
    

    【讨论】:

    • 这里的改动是添加了 yourapp 的 xmlns,并且为项目的最后两个属性更改了命名空间(以防其他人难以看到它)。 stackoverflow.com/questions/18099221/… 建议两者兼得。
    【解决方案2】:

    您的菜单中缺少“collapseActionView”:

    app:showAsAction="ifRoom|collapseActionView"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-03
      • 2012-12-15
      • 2015-05-09
      • 1970-01-01
      • 1970-01-01
      • 2014-12-15
      相关资源
      最近更新 更多