Пользовательский эффект раскрытия отображается под Android WebView, не показывая веб-представление
Я использую Circular Reveal Library (ttps://github.com/ozodrukh/CircularReveal), чтобы показать представление в действии, содержащем веб-представление, эта анимация работает без каких-либо проблем, но она рисуется ниже веб-представления. WebView
не раскрывается с его родительским представлением, и когда я добавляю некоторые анимации в WebView
тогда это отменяет анимацию кругового раскрытия.
<?xml version="1.0" encoding="utf-8"?>
<io.codetail.widget.RevealFrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/myLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.CardView
android:id="@+id/myCard"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:cardUseCompatPadding="true"
app:contentPadding="5dp">
<WebView
android:id="@+id/myWeb"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</android.support.v7.widget.CardView>
</LinearLayout>
</io.codetail.widget.RevealFrameLayout>
<?xml version="1.0" encoding="utf-8"?>
<io.codetail.widget.RevealFrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/myLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.CardView
android:id="@+id/myCard"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:cardUseCompatPadding="true"
app:contentPadding="5dp">
<WebView
android:id="@+id/myWeb"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</android.support.v7.widget.CardView>
</LinearLayout>
</io.codetail.widget.RevealFrameLayout>
1 ответ
Возможный обходной путь - использование AnimatorListener, который переключает видимость WebView:
WebView webView = ...
Animator circularReveal = ViewAnimationUtils.createCircularReveal( ... )
circularReveal.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animator) {
webView.setVisibility(View.INVISIBLE)
}
@Override
public void onAnimationEnd(Animator animator) {
webView.setVisibility(View.VISIBLE)
}
}