我有一个带有Recyclerview的屏幕和LinearLayout中的其他元素.问题是当我删除RecyclerView的一个项目时,animateLayoutChanges在这种情况下不起作用. anayone知道为什么会这样吗?

XML

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"

tools:context="com.example.alvaro.resizetest.MainActivity">

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:animateLayoutChanges="true"

android:orientation="vertical">

android:id="@+id/recyclerview"

android:layout_width="match_parent"

android:layout_height="wrap_content"/>

android:id="@+id/test1"

android:layout_width="match_parent"

android:layout_height="50dp"

android:background="@color/colorAccent"

android:gravity="center_vertical">

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="LinearLayout"

android:textColor="#FFFFFF"

android:textSize="22sp"/>

android:id="@+id/test2"

android:layout_width="match_parent"

android:layout_height="50dp"

android:background="@color/colorPrimaryDark"

android:gravity="center_vertical">

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="LinearLayout"

android:textColor="#FFFFFF"

android:textSize="22sp"/>

android:id="@+id/test3"

android:layout_width="match_parent"

android:layout_height="50dp"

android:background="@color/colorAccent"

android:gravity="center_vertical">

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="LinearLayout"

android:textColor="#FFFFFF"

android:textSize="22sp"/>

android:id="@+id/test4"

android:layout_width="match_parent"

android:layout_height="50dp"

android:background="@color/colorPrimaryDark"

android:gravity="center_vertical">

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="LinearLayout"

android:textColor="#FFFFFF"

android:textSize="22sp"/>

JAVA

public class MainActivity extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerview);

Adapter adapter = new Adapter();

recyclerView.setLayoutManager(new LinearLayoutManager(this));

recyclerView.setAdapter(adapter);

recyclerView.setNestedScrollingEnabled(true);

View.OnClickListener listener = new View.OnClickListener() {

@Override

public void onClick(View view) {

view.setVisibility(View.GONE);

}

};

findViewById(R.id.test1).setOnClickListener(listener);

findViewById(R.id.test2).setOnClickListener(listener);

findViewById(R.id.test3).setOnClickListener(listener);

findViewById(R.id.test4).setOnClickListener(listener);

}

class Adapter extends RecyclerView.Adapter{

int size = 3;

public Adapter() {

}

@Override

public Holder onCreateViewHolder(ViewGroup parent,int viewType) {

View view = getLayoutInflater().inflate(R.layout.item,parent,false);

return new Holder(view);

}

@Override

public void onBindViewHolder(Holder holder,int position) {

}

@Override

public int getItemCount() {

return size;

}

class Holder extends RecyclerView.ViewHolder {

public Holder(final View itemView) {

super(itemView);

itemView.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

size --;

notifyItemRemoved(getAdapterPosition());

}

});

}

}

}

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐