我有三个全屏周视图,一次加载(上一个,下一个,当前)。每周视图有7列(一周中的每一天),具有可绘制的背景。
我的可绘制资源背景是
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Grey border on left and right --><item><shape><solid android:color="#999"/></shape></item>
<!-- White background (.5pt to not cover border) --><item android:left=".5pt" android:right=".5pt"><shape>solid android:color="#FFF"/></shape></item>
<!-- Image that repeats to make a grid --><item android:left=".5pt" android:right=".5pt"><bitmap android:src="@drawable/grid" android:tileMode="repeat" android:gravity="center" /></item>
<!-- Times that align left. (12AM, 1AM, etc) --><item android:left="1pt" android:right=".5pt"><bitmap android:src="@drawable/grid_times" android:gravity="top|left|clip_horizontal" /></item>
</layer-list>
出于某种原因,如果我有三组七个在彼此前面,只有前面(可见一个)得到重复图像(实际上是一个gif)。如果我将前面移开,你可以看到其他人没有得到重复的图像
布局是RelativeLayout,其中包含三个子类RelativeLayout。这三个子类彼此相同并覆盖dispatchTouchEvent
,允许拖动它们。它们从彼此顶部开始,因此只有前面的一个可见。它们几乎完全相同,只是其中一个在顶部(首先)。
这是android
的顶视图 ' first '
' second '
' third '
| |#<-- The android screen boundaries. Only third is visible.
^ ^ ^
user
looking
forward
当用户使用他们的手指拖动视图时,它会像这样结束(用户可以看到左边第一个窗格(上周)的一点)
' first '
' second '
' third '
| |
另一种方式看起来像这样(用户可以看到第二个窗格的一小部分(下周))
' first '
' second '
' third '
| |
当用户离开时,他们会抓住这个位置(现在,当我们解决这个问题时它会改变)
' first '
' second '
' third '
| |
答案 0 :(得分:1)
当你移动前面的那个,invalidate()
其他的,所以他们加载了drawable。