我有linearlayout和inside 2文本视图都有字幕,当我更新第一个文本,然后第二个文本视图重新启动字幕。
<LinearLayout
android:id="@+id/panel"
android:layout_width="320dp"
android:layout_height="match_parent"
android:layout_marginLeft="2dp"
android:layout_marginRight="2dp"
android:gravity="center_vertical"
android:orientation="vertical" >
<TextView
android:id="@+id/first"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:gravity="bottom|center_horizontal"
android:marqueeRepeatLimit="marquee_forever"
android:singleLine="true" />
<TextView
android:id="@+id/second"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:gravity="top|center_horizontal"
android:marqueeRepeatLimit="marquee_forever"
android:singleLine="true"
/>
</LinearLayout>
我发现如果 R.id.first
以及 R.id.second
我准备好了 layout_width="320dp"
效果不会发生。但我想设定 android:layout_width="match_parent"
有解决办法吗?
我发现了类似的问题,但没有解决方法:android,relativelayout在同一个relativelayout中更改imageview时重新启动marquee textview
3条答案
按热度按时间vsaztqbk1#
我遇到了一个类似的问题,解决方法是为textview设置固定大小。
那为什么不按程序进行呢?就我而言,它解决了问题。以下是我的详细解决方案:
布局有点复杂,有很多变化的值。有趣的是:
layout.xml格式:
scrollingtextview已在此答案中定义
又来了:
滚动文本视图.java:
最后是活动。如前所述,您需要设置固定的宽度和高度,因此我们将使用oncreate()中的侦听器以编程方式执行此操作:
myactivity.java文件:
小心,如果你需要改变方向或诸如此类的事情,但它的工作非常适合我!
----api-11之前版本的编辑---
因为
OnLayoutChangeListener
只存在于api v11中,有一个解决方法(它可以工作,但我认为它不太好):拆下
OnLayoutChangeListener
从您的活动中:myactivity.java文件:
并添加一个
onSizeChanged
在scrollingtextview中:滚动文本视图.java:
希望有帮助!
wh6knrhe2#
应防止将两个选框放在同一视图组中。在您的例子中,可以用linearlayout Package 每个marquee textview(如果使用relativelayout,这将不起作用)。
j8yoct9x3#
只是一个简单的修正:)不用担心太多…只是修正宽度的textview约800dp或太高的宽度。它将解决重置问题