首页 > 解决方案 > 如何在 TextView 中压倒自动调整大小?

问题描述

我有一个大文本要显示。但我在滑动时附加文本。向左滑动可查看另一行文本。向右滑动以清理 TextView。由于我的文本很长,我决定为其添加自动调整大小,但存在问题。我希望我的文本大小在向右滑动时恢复为默认值。

我尝试在 Listener 中添加 setTextSize 方法

    swipeableView.setOnTouchListener(new OnSwipeTouchListener(CardsScrollActivity.this) {
            @Override
            public void onSwipeLeft() {
                fade.reset();
                questionView.clearAnimation();
                questionView.startAnimation(fade);
                tipsView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 20);
                tipsView.setText("");
                sb.delete(0, sb.length());
                i[0] = 0;
                finalCycler.setNextCard();
                questionView.setText(finalCycler.currentCard.getQuestion());
            }

            @Override
            public void onSwipeRight() {
                if (finalCycler.currentCard.getTips().length > i[0]) {
                    sb.append("\t\t");
                    sb.append(finalCycler.currentCard.getTips()[i[0]]).append('\n');
                    tipsView.setText(sb.toString());
                    i[0]++;
                } else {
                    Toast toast = Toast.makeText(getApplicationContext(),
                            "No more tips", Toast.LENGTH_SHORT);
                    toast.show();
                }
            }
        });

<TextView
            android:id="@+id/tips"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:duplicateParentState="true"
            android:gravity="center_vertical"
            android:scrollbars="vertical"
            android:textSize="20sp"
            app:autoSizeMaxTextSize="20sp"
            app:autoSizeMinTextSize="5sp"
            app:autoSizeStepGranularity="1sp"
            app:autoSizeTextType="uniform" />

向右滑动后,我希望文本大小为 20sp。但它似乎是 autosize 的最后一个值。

标签: javaandroid

解决方案


setAutoSizeTextTypeWithDefaults(int autoSizeTextType)当您不希望使用该命令并为其提供 value时,您应该能够禁用自动调整大小功能AUTO_SIZE_TEXT_TYPE_NONE。当您想重新启用它时,您将提供相同的功能,其值AUTO_SIZE_TEXT_TYPE_UNIFORM是“统一缩放水平轴和垂直轴”。完整的解释在Android 的开发者网站上


推荐阅读