Java Android动画与资源冲突?

Java Android动画与资源冲突?,java,android,xml,animation,gridview,Java,Android,Xml,Animation,Gridview,我有一个GridView,其中的项目在单击项目时会更改背景资源。 同时,我想设置布局位置的动画,但是,当我这样做时,gridView项的背景资源在第一次播放动画时不会更改 我想发生的事: 项目被单击 1.项目背景资源已更改 2.显示隐藏布局并设置动画 实际上似乎正在发生的是: 第一次布局仍然隐藏时,会显示动画,但不会更改已单击项的背景资源,任何后续项都会单击设置资源,动画将正常工作 编辑: 我已经玩了一点,问题似乎是可见性“消失”了,而不是动画,如果我将布局设置为visibility=“invi

我有一个GridView,其中的项目在单击项目时会更改背景资源。 同时,我想设置布局位置的动画,但是,当我这样做时,gridView项的背景资源在第一次播放动画时不会更改

我想发生的事: 项目被单击 1.项目背景资源已更改 2.显示隐藏布局并设置动画

实际上似乎正在发生的是:

第一次布局仍然隐藏时,会显示动画,但不会更改已单击项的背景资源,任何后续项都会单击设置资源,动画将正常工作

编辑: 我已经玩了一点,问题似乎是可见性“消失”了,而不是动画,如果我将布局设置为visibility=“invisible”,那么资源将被应用,因此,如果以任何方式移动gridView(gridView位于隐藏布局下方,我不想显示),资源将被忽略? i、 e:

setSelectedBackground():

anim.from_left.xml:

 <?xml version="1.0" encoding="utf-8"?>
 <set xmlns:android="http://schemas.android.com/apk/res/android">
   <translate xmlns:android="http://schemas.android.com/apk/res/android"
      android:duration="250"
      android:fromXDelta="-100%"
      android:toXDelta="0%" >
  </translate>
 </set>

布局如下:

<LinearLayout
    android:id="@+id/dateDetailContainer"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:visibility="gone">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="This is a Placeholder"
        android:textSize="15sp"
        />

    </LinearLayout>

编辑:

而不是:

v.setBackgroundResource(R.drawable.back_selected);
尝试:


尝试在侦听器中反转方法调用。在更改可见性并运行动画后,您将设置资源,因此在您第二次单击它之前,它不会显示

gridview.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View v, int position, long id) {

    //HERE
    setSelectedBackground(v, gridview);
    scaleAnimateHeight(findViewById(R.id.dateDetailContainer));
}
gridview.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父视图、视图v、整型位置、长id){
//这里
设置选定背景(v,gridview);
scaleAnimateHeight(findViewById(R.id.dateDetailContainer));
}

尝试过,不幸的是,这似乎不是问题所在。使用完全相同的东西,设置隐藏布局的动画,但第一次不应用背景资源。请查看我的编辑。
 <?xml version="1.0" encoding="utf-8"?>
 <set xmlns:android="http://schemas.android.com/apk/res/android">
   <translate xmlns:android="http://schemas.android.com/apk/res/android"
      android:duration="250"
      android:fromXDelta="-100%"
      android:toXDelta="0%" >
  </translate>
 </set>
<LinearLayout
    android:id="@+id/dateDetailContainer"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:visibility="gone">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="This is a Placeholder"
        android:textSize="15sp"
        />

    </LinearLayout>
v.setBackgroundResource(R.drawable.back_selected);
setImageDrawable(R.drawable.back_selected);
setImageDrawable(getResources().getDrawable(R.drawable.back_selected));
gridview.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View v, int position, long id) {

    //HERE
    setSelectedBackground(v, gridview);
    scaleAnimateHeight(findViewById(R.id.dateDetailContainer));
}