我要显示一个大文本。但是我在刷卡上附加了文字。向左滑动即可获得另一行文字。向右轻扫以清理TextView。 由于我的文字很长,因此我决定向其添加自动调整大小,但是存在问题。我希望我的文字大小可以在向右滑动时恢复为默认大小。
我尝试在侦听器内部添加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的最后一个值。
答案 0 :(得分:0)
当您不希望使用命令setAutoSizeTextTypeWithDefaults(int autoSizeTextType)
禁用自动调整大小功能时,应该为其提供值AUTO_SIZE_TEXT_TYPE_NONE
。当您要重新启用它时,可以使用值AUTO_SIZE_TEXT_TYPE_UNIFORM
来提供相同的功能,以“水平缩放水平轴和垂直轴”。有关完整说明,请参见Android's developer site。