首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在同一个LinearLayout中更改另一个TextView时,TextView会重新启动Marquee

在同一个LinearLayout中更改另一个TextView时,TextView会重新启动Marquee。这是因为当TextView的内容发生变化时,Marquee动画会重新开始。为了避免这种情况,可以使用以下方法:

  1. 使用android:focusable="true"android:focusableInTouchMode="true"属性:

在XML布局文件中,为TextView添加这两个属性,可以防止TextView获得焦点,从而避免重新启动Marquee动画。

代码语言:xml<TextView
复制
    android:id="@+id/textView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="This is a long text that will scroll"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:ellipsize="marquee"
    android:marqueeRepeatLimit="marquee_forever" />
  1. 使用requestFocus()方法:

在代码中,可以使用requestFocus()方法将焦点设置为TextView,从而避免重新启动Marquee动画。

代码语言:java
复制
TextView textView = findViewById(R.id.textView);
textView.requestFocus();
  1. 使用setSelected(true)方法:

在代码中,可以使用setSelected(true)方法将TextView设置为选中状态,从而避免重新启动Marquee动画。

代码语言:java
复制
TextView textView = findViewById(R.id.textView);
textView.setSelected(true);

这些方法可以避免在同一个LinearLayout中更改另一个TextView时,TextView重新启动Marquee动画。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券