Я делал собственный браузер, используя WebView
для загрузки страниц, используя EditText
для ввода веб-адреса.
Проблема возникает, когда вы нажимаете адрес EditText
, а затемнажмите обратно внутри WebView
.Обычно, только один из них должен быть в состоянии быть выбранным, но в этом случае, если вы выбираете EditText
в пределах WebView
, он фактически дает вам два курсора и сохраняет адресную строку активной (то есть, если вы пытаетесьвведите в поисковой строке Google, например, когда оба "активны", что он возвращает то, что вы вводите в адресную строку).
Я попытался сделать onClickListener
для WebView
, чтобы запросить фокускаждый раз, когда к нему прикасаются, но он не удаляет фокус из адресной строки после выбора.
mWebView.setOnClickListener(new View.OnClickListener(){
public void onClick(View view) {
mWebView.requestFocus();
}
});
Есть ли способ связать WebView
и адрес EditText
так, чтобы только одиниз них можно выбрать в любой момент времени?
Вот макет:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:baselineAligned="true"
android:id="@+id/mainPanel">
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0" android:id="@+id/addressBar">
<EditText android:id="@+id/address"
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:lines="1">
</EditText>
<Button android:layout_weight="0"
android:layout_width="40dip"
android:layout_height="40dip"
android:layout_gravity="top"
android:background="@drawable/ic_menu_directions"
android:clickable="true"
android:id="@+id/go">
</Button>
</LinearLayout>
<WebView android:layout_width="fill_parent"
android:id="@+id/webview"
android:layout_height="wrap_content"
android:layout_weight="50">
<requestFocus/>
</WebView>
<ProgressBar android:layout_height="wrap_content" style="?android:attr/progressBarStyleHorizontal" android:id="@+id/progbar" android:layout_width="fill_parent"></ProgressBar>
</LinearLayout>