5
在API 11+中,當長按WebView中的文本時,會顯示上下文操作欄(CAB)。我不想覆蓋現有的菜單項,所以實現我自己的ActionMode.Callback不是正確的答案。我只想知道何時顯示默認的CAB,以便我知道文本選擇已經開始,這樣我就可以鎖定WebView上的滾動了。有什麼想法嗎?(Android)有沒有辦法檢測在webview中選擇文本的時間?
在API 11+中,當長按WebView中的文本時,會顯示上下文操作欄(CAB)。我不想覆蓋現有的菜單項,所以實現我自己的ActionMode.Callback不是正確的答案。我只想知道何時顯示默認的CAB,以便我知道文本選擇已經開始,這樣我就可以鎖定WebView上的滾動了。有什麼想法嗎?(Android)有沒有辦法檢測在webview中選擇文本的時間?
如果你想知道什麼時候默認CAB是在屏幕上,你可以在ACTION_UP後檢查它的存在:
public class MainActivity extends ActionBarActivity {
WebView mWebView;
boolean mSelected;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mWebView = (WebView) findViewById(R.id.wvExample);
mWebView.loadUrl("file:///android_asset/webpage.html");
mWebView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP) {
View root = getWindow().getDecorView();
View cabButton = root.findViewById(R.id.action_mode_close_button);
if (cabButton != null && !mSelected) {
Toast.makeText(getApplicationContext(), "Text is now selected", Toast.LENGTH_SHORT).show();
mSelected = true;
} else {
mSelected = false;
Toast.makeText(getApplicationContext(), "No Text Selected", Toast.LENGTH_SHORT).show();
}
}
return false;
}
});
.....
我想隱藏我的標題欄中顯示的CAB時。 –