我从服务中使用RemoteView构建了通知。
RemoteView布局包含我想让它滚动的TextView。
我把它设置为xml中的选框,一切都很好。但是现在我需要设置textView.setSelected(true)
因此我需要以某种方式引用textView。
那么如何从RemoteView获取textView来执行setSelected()?或者是否有另一种方法让它在通知中滚动?
我试过
LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.notification, null);
TextView text = (TextView) layout.findViewById(R.id.text);
text.setSelected(true);
或
View v = views.apply(getApplicationContext(), null);
TextView text = (TextView) v.findViewById(R.id.text);
text.setSelected(true);
但文字不滚动..
这是我的xml:
<TextView
android:id="@+id/text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:duplicateParentState="true"
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:focusable="true"
android:focusableInTouchMode="true"
android:gravity="center"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="false"
android:singleLine="true" >
<requestFocus
android:duplicateParentState="true"
android:focusable="true"
android:focusableInTouchMode="true" />
</TextView>
答案 0 :(得分:1)
这就够了:
<TextView
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:duplicateParentState="true"
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:focusable="true"
android:focusableInTouchMode="true"
android:gravity="center"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="false"
android:singleLine="true" >
<requestFocus android:duplicateParentState="true"
android:focusable="true"
android:focusableInTouchMode="true" />
</TextView>