小编Cha*_*han的帖子

如何从漂亮的动画中删除RecyclerView中的所有项目

我必须通过在列表视图中展开和折叠动画来实现列表视图.我有一个方法使用这样做,但它不适用于RecyclerView视图.整个RecyclerView将在短时间内可见并且动画开始之后. 请参阅此链接中的GIF.

作为替代方案,我遵循这篇文章并添加和删除所有项目(它总是将少于5个项目,因此没有性能问题)使用已
LayoutAnimation实现的后续.

在此输入图像描述

如您所见,列表视图项显示动画工作.隐藏项目反转动画文件中的属性,如下所示,并在删除所有数据后应用它RecyclerView

item_remove_animation_drop_down.xml

<set xmlns:android="http://schemas.android.com/apk/res/android"
        android:duration="@integer/anim_duration_medium">

        <translate
        android:fromYDelta="0"
        android:toYDelta="-20%"
        android:interpolator="@android:anim/decelerate_interpolator" />

        <alpha
            android:fromAlpha="1"
            android:toAlpha="0"
            android:interpolator="@android:anim/decelerate_interpolator"
            />

        <scale
            android:fromXScale="100%"
            android:fromYScale="100%"
            android:toXScale="95%"
            android:toYScale="95%"
            android:pivotX="50%"
            android:pivotY="50%"
            android:interpolator="@android:anim/decelerate_interpolator" />

    </set>
Run Code Online (Sandbox Code Playgroud)

layout_animation_fall_down.xml

<layoutAnimation
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:animation="@anim/item_add_animation_fall_down"
    android:delay="15%"
    android:animationOrder="normal" />
Run Code Online (Sandbox Code Playgroud)

适配器中的方法

public void runItemRemoveAnimation(final RecyclerView recyclerView) {

        final LayoutAnimationController controller =
                AnimationUtils.loadLayoutAnimation(context, R.anim.layout_animation_drop_down);

        recyclerView.setLayoutAnimation(controller);
        recyclerView.getAdapter().notifyDataSetChanged();
        recyclerView.scheduleLayoutAnimation();
    }
Run Code Online (Sandbox Code Playgroud)

片段中的代码

private void onClickSelectPromotionContainer() {
        selectPromotionContainer.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (discountListExpanded) {

                    promoListData.removeAll(promosDataFromServer); …
Run Code Online (Sandbox Code Playgroud)

android android-animation android-recyclerview

6
推荐指数
0
解决办法
423
查看次数

将double值格式化为2个小数点,并在Java中获取逗号分隔的货币格式

我正在开展项目,我必须以下列格式显示价格.

250  -> 250.00
2500 -> 2,500.00
260500.33 -> 260,500.33
Run Code Online (Sandbox Code Playgroud)

我虽然遵循方法将使这项工作,但它不起作用.

    double price = 2500;
    DecimalFormat df = new DecimalFormat("#.00");

    String format1 = df.format(price);
    System.out.println(format1); //250.00

    String format2 = NumberFormat.getNumberInstance(Locale.US).format(format1);// Exception "Cannot format given Object as a Number"
    System.out.println(format2); //excepted 2,500.00
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么 ?

java

1
推荐指数
1
解决办法
6236
查看次数