我正在尝试使用操作栏中的搜索按钮创建一个Android应用程序,当用户按下搜索按钮时,操作栏上会出现一个搜索文本框,就像Google的Messenger应用程序一样(见下文).
这有一些问题.例如,文本用省略号读取"搜索...",不像没有省略号的简单"搜索",但到目前为止最关注的是,工具栏中没有后退按钮,搜索按钮被按下在左边太远,右边的溢出按钮被推到一边.此外,按下我的设备上的物理后退按钮不会折叠搜索视图,它只是存在于应用程序.
我过去尝试实现搜索栏的一些代码如下.我尝试设置SearchViewExpandListener
如下所示,以便在展开搜索视图时显示后退按钮,但它不起作用.
编辑:我还在我onMenuItemActionExpand
和onMenuItemActionCollapsed
方法上使用断点运行应用程序,我发现这些方法实际上从未调用过.
MainActivity.java
import android.content.Context;
import android.support.v4.view.MenuItemCompat;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.SearchView;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowHomeEnabled(false);
}
@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);
// See above
MenuItemCompat.setOnActionExpandListener(searchItem, new SearchViewExpandListener(this));
MenuItemCompat.setActionView(searchItem, …
Run Code Online (Sandbox Code Playgroud) 我有一个 Chrome 扩展程序,它需要一个沙箱,以便我可以使用自定义内容安全策略,并且还需要一个 Service Worker,以便我有一个持久运行的脚本。我希望 Service Worker 打开一个新的(沙箱)窗口,然后能够使用postMessage
.
我尝试了三种方法来创建此窗口,但没有一种方法对我有用:
chrome.windows.create
哪个能够创建窗口,但我无法访问postMessage
(或者至少我不知道如何以postMessage
这种方式访问)。window.open
返回一个WindowProxy
我可以调用的对象postMessage
。然而,这仅适用于window
上下文可用的情况,而在 Service Worker 中并非如此。clients.openWindow
,但最终出现错误“不允许打开窗口”。无论如何,有没有办法创建一个(沙盒)窗口,允许我postMessage
在 Chrome 扩展中的 Service Worker 中使用?
在此之前我从未使用过jQuery,但我会解释我正在尝试做什么.
的index.html
<!DOCTYPE html>
<html>
<head>
<title>My Awesome Website</title>
<link href="style.css" rel="stylesheet" type="text/css"/>
<link rel="shortcut icon" href="/favicon.ico" />
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
</head>
<body>
<!-- <iframe width="100%" height="175" frameborder="0" scrolling="no" src="navbar.html"></iframe> I used to use this - but i cant have dropdown menus. -->
<!-- This is my problem -->
<script>
$('#navbar').load('./navbar.html');
</script>
<noscript>
<h1>Please enable Javascript!</h1>
</noscript>
<div id="container">
<!-- Content Here -->
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
navbar.html
<div id="navbar">
<li><object width="64" height="64" data="favicon.svg" type="image/svg+xml"></object></li>
<li><object width="64" height="64" …
Run Code Online (Sandbox Code Playgroud)