从RemoteViews获取TextView以使其文本可滚动

时间:2014-08-20 22:58:19

标签: service notifications textview scroll remoteview

我从服务中使用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>

1 个答案:

答案 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>