表格视图在coordinatorlayout内时表面闪烁

时间:2015-12-15 05:32:06

标签: android surfaceview touch-event android-coordinatorlayout

我的自定义表面视图在触摸时无法正确绘制,它在协调器布局内。 我该如何解决?

我有一个片段,其中包含一个像这样的surfaceView:

        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">

            <!-- this is an SurfaceView! -->
            <com.my.app.CustomView
                android:id="@+id/surfaceView"
                android:layout_width="match_parent"
                android:layout_height="300dp" />
        </RelativeLayout>

并且,它将被替换为CoordinatorView, 像这样的布局:

<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    android:id="@+id/mainView">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/WexTheme.AppBarOverlay">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary">
        </android.support.v7.widget.Toolbar>

        <android.support.design.widget.TabLayout
            android:id="@+id/tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:visibility="gone"
            style="@style/IconTitleTabLayout">

        </android.support.design.widget.TabLayout>

    </android.support.design.widget.AppBarLayout>

    <FrameLayout
        android:id="@+id/content"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </FrameLayout>
</android.support.design.widget.CoordinatorLayout>

当片段附加时它看起来有效,并且自定义surfaceview显示在正确的位置,但是。

问题是:当我触摸自定义surfaceview时,调用重绘视图,表面将一些帧(约1/3 -1/2帧)偏移量绘制到顶部(偏移距离约为总高度)工具栏),所以在触摸时视图会一直闪烁。

  

我试图删除           容器FrameLayout(id = content)的app:layout_behavior="@string/appbar_scrolling_view_behavior",表面视图不再闪烁,但没有coordinatorlayout行为,它不在正确的位置

感谢任何解决方案或讨论机制

0 个答案:

没有答案