css聚焦-Android WebView焦点问题

2023-09-02 0 6,967 百度已收录

我正在努力解决 WebView 的焦点管理问题:WebView 与 Canonical Components 的焦点管理混在一起。 这是一个简单的应用程序,只有一个 EditBox 和一个加载 Google 的 WebView!



    
        
    
    

Java代码如下:

css聚焦-Android WebView焦点问题

public class WebtagActivity extends Activity
{
    // UI components.
    private WebView mContent;
    private EditText mUrl;
    @Override
    public void onCreate (Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        mContent = (WebView) findViewById(R.id.uiContent);
        mContent.getSettings().setJavaScriptEnabled(true);
        mContent.loadUrl("http://www.google.fr/");
    }
}

css聚焦-Android WebView焦点问题

基于这个极其简单的例子,不可能将焦点放在WebView(即google搜索词输入框)上! 但是,当添加“mContent.requestFocus();”时在初始化期间,情况变得更好。 如果我先单击 WebViewcss聚焦,我可以从 EditText 切换到 WebView...但是行为很快就会变得非常“不稳定”,WebView 有时在我触摸它时不会获得焦点,有时它会获得焦点但保持触摸状态再次点击 WebView 字段周围的焦点圆圈(橙色或红色,具体取决于您的手机)以返回到 EditText 组件(我可以在其中编写文本)!

css聚焦-Android WebView焦点问题

不管怎样css聚焦,我找到的解决方案是添加一个 touchListener 并在单击 WebView 时请求焦点:

css聚焦-Android WebView焦点问题

mContent.setOnTouchListener(new View.OnTouchListener() { 
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        switch (event.getAction()) { 
                   case MotionEvent.ACTION_DOWN: 
                   case MotionEvent.ACTION_UP: 
                       if (!v.hasFocus()) { 
                           v.requestFocus(); 
                       } 
                       break; 
               } 
               return false; 
            }
    });

这解决了几乎所有问题(从经典组件切换到 WebView 并编译文本),除了一个问题:WebView 在数组周围保留 focusRectangle(绿色或蓝色),无论它是否具有焦点。 在下面的屏幕截图中,我的 EditText 具有焦点并接收文本,但 WebView 似乎仍然具有焦点。 我尝试了clearFocus,但它没有做任何事情:

查看结果

知道如何解决这个问题吗? 非常感谢您的帮助!

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 css css聚焦-Android WebView焦点问题 https://www.wkzy.net/game/189710.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务