2013-08-22 31 views
5

Trong API 11+ khi nhấn và giữ văn bản trong WebView, Thanh tác vụ theo ngữ cảnh (CAB) được hiển thị. Tôi không muốn ghi đè lên các mục trình đơn hiện có để thực hiện ActionMode.Callback của riêng tôi không phải là câu trả lời đúng. Tôi chỉ muốn biết khi nào CAB mặc định được hiển thị để tôi biết lựa chọn văn bản đã bắt đầu theo cách đó, tôi có thể khóa cuộn trên WebView. Có suy nghĩ gì không?(Android) Có cách nào để phát hiện khi văn bản đã được chọn trong chế độ xem web không?

+0

Tôi muốn để ẩn thanh tiêu đề của tôi khi CAB được hiển thị. –

Trả lời

0

Nếu bạn muốn biết khi CAB mặc định là trên màn hình, bạn có thể kiểm tra sự tồn tại của nó sau một 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; 
     } 
    }); 
.....