Как я скрываю WebView?

Мне нужно скрыть WebVew во время загрузки его веб-контента. Я попытался сделать это с другим видом следующим образом:

<WebView android:scrollbars="none" android:id="@+id/id_webview" android:layout_width="fill_parent" android:layout_height="fill_parent" /> <View android:visibility="gone" android:scrollbars="none" android:id="@+id/id_view" android:layout_width="fill_parent" android:layout_height="fill_parent" /> 

Когда я хочу скрыть WebView, я изменяю видимость представления на «видимый» (View.setVisibility (View.VISIBLE);). Но View не охватывает WebView, и он не скрывает. Мне нужно поместить представление на фронт во время загрузки WebView.

Хотя я считаю этот подход странным, вы должны проверить родительский контейнер этих представлений.

Если LinearLayout не удивительно, что View не распространяется на WebView. Если вы хотите использовать макеты пользователей, попробуйте использовать RelativeLayout и выравнивать элементы одинаково, например, добавив оба представления:

 android:layout_alignParentTop="true" android:layout_alignParentLeft="true" 

Другой вариант (и более правильный IMO) – использовать ViewSwitcher или ViewFlipper. Он переключается между его дочерними элементами с помощью методов showNext (), showPrevious () (в ViewFlipper) и getNextView () (в ViewSwitcher). На самом деле легко реализовать и использовать. Посмотрите несколько примеров.

Просто быстрый совет:

 <!-- ViewSwitcher or ViewFlipper --> <ViewSwitcher android:id="@+id/view_switcher" android:layout_width="wrap_content" android:layout_height="wrap_content"> <View android:scrollbars="none" android:id="@+id/id_view" android:layout_width="fill_parent" android:layout_height="fill_parent" /> <WebView android:scrollbars="none" android:id="@+id/id_webview" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </ViewSwitcher> 

И в вашем коде:

 // This will hide currently displayed and reveal next ((ViewSwitcher) findViewById(R.id.view_switcher)).getNextView(); // Or, in case of ViewFlipper: // This will hide currently displayed and reveal next ((ViewFlipper) findViewById(R.id.view_switcher)).showNext(); 

Разница между ними заключается в том, что Switcher может иметь только 2 детей и имеет фабрику для создания представлений.

PS Смешанные два аниматора, отредактированный пост.

Intereting Posts