Как я скрываю WebView? - PullRequest
       8

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

3 голосов
/ 03 ноября 2010

Мне нужно скрыть 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 на «visible» (View.setVisibility (View.VISIBLE);) Но View не покрывает WebView и не скрывает. Мне нужно поместить вид спереди, пока загружается WebView.

1 Ответ

6 голосов
/ 03 ноября 2010

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

Если это LinearLayout, неудивительно, что View не охватывает WebView.Если вы хотите использовать Layouts, попробуйте использовать 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 Смешанные два аниматора, редактированное сообщение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...