-1

我正在Android中制作记忆游戏。我决定将 GridView 与适配器一起使用,它会在每个单元格内膨胀图像。

问题是第一行中的图像在 3D 绕 y 轴旋转时被剪切,如下所示:看一看

最后一行的图像不会发生这种情况。我设法避免这种行为的唯一方法是增加每个图像的填充,但这会因布局而改变太多。我还尝试向 GridView 添加顶部填充和/或边距,但这没有帮助。有没有办法让图像在第一次旋转时没有这个问题?这是我的布局代码:

  <?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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:background="@color/colorPrimary"
    tools:context="com.example.alen.matchinggameaddiko.activities.GameActivity">
    <ImageView
        android:id="@+id/imageView"
        android:layout_width="150dp"
        android:layout_height="0px"
        android:layout_marginLeft="26dp"
        android:layout_marginTop="0dp"
        android:src="@drawable/addiko_logo_white"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
    <GridView
        android:id="@+id/grid_game"
        android:layout_width="0px"
        android:layout_height="0px"
        android:layout_marginBottom="10dp"
        android:layout_marginEnd="@dimen/gridImagesMarginLeft"
        android:layout_marginStart="@dimen/gridImagesMarginRight"
        android:numColumns="4"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/imageView" />
</android.support.constraint.ConstraintLayout>

谢谢!

4

2 回答 2

3

你试过ViewGroup.setClipChildren(false)吗?旋转看起来像是离开了 ViewGroup 的边界。

于 2018-02-16T21:21:07.843 回答
1

RecyclerView我遇到同样问题的情况下,有效的方法是android:clipChildren="false"在.RecyclerViewandroid:clipToPadding="false"RecyclerView

于 2019-05-28T14:37:12.127 回答