小编Rat*_*vic的帖子

Android WebView焦点问题

我正在与WebView的焦点管理作斗争:WebView混淆了经典组件的焦点管理.这是一个简单的应用程序,只有一个EditBox和一个WebView加载谷歌!

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:and="http://schemas.android.com/apk/res/android"
              xmlns:webtag="http://schemas.android.com/apk/res/com.webtag"
              and:orientation="vertical" and:layout_width="fill_parent" and:layout_height="fill_parent">
    <LinearLayout and:id="@+id/HorizontalScrollView02"
                  and:layout_width="fill_parent" and:layout_height="wrap_content">
        <EditText and:id="@+id/EditText01"
                  and:layout_width="wrap_content" and:layout_height="wrap_content"
                  and:text="@+id/EditText01"/>
    </LinearLayout>
    <WebView and:id="@+id/uiContent"
             and:layout_weight="1"
             and:layout_width="fill_parent"
             and:layout_height="fill_parent"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

这是Java代码:

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/");
    }
}
Run Code Online (Sandbox Code Playgroud)

基于这个非常简单的例子,不可能专注于WebView(即谷歌搜索术语输入框)!但是在添加"mContent.requestFocus();"时 在初始化期间,事情变得更好.如果我先点击WebView,我可以从我的EditText切换到我的WebView ......但是行为很快变得非常"不稳定",WebView有时在触摸时无法获得焦点,有时会得到它但是在WebView字段周围保持焦点矩形(橙色或绿色取决于您的手机)在另一次触摸之后返回EditText组件(我可以在其中写入文本)!

无论如何,我找到的解决方案是在单击WebView时添加touchListener并请求焦点:

mContent.setOnTouchListener(new View.OnTouchListener() { 
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        switch (event.getAction()) { 
                   case MotionEvent.ACTION_DOWN: 
                   case …
Run Code Online (Sandbox Code Playgroud)

android focus webview android-widget

11
推荐指数
3
解决办法
4万
查看次数

标签 统计

android ×1

android-widget ×1

focus ×1

webview ×1