我试图使用选框并且它不起作用, 这是我的代码......任何人都可以看到问题吗?
<TextView
android:id="@+id/lblTitle"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:singleLine="true"
android:scrollHorizontally="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:freezesText="true"
android:layout_width="140dp"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="15dp"
android:gravity="center"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:text="Book Title"
android:textColor="#FFFFFF"
android:textSize="12dp" />
我在运行时设置了这个textview的文本。 我使用此链接中的代码 TextView Marquee not working
答案 0 :(得分:12)
只是在你的活动中这样做,因为你的代码对于简单的textview选框来说是好的
TextView textview=(TextView)findViewById(R.id.lblTitle);
textview.setSelected(true);
如果你想在适配器的listview中使用选框,而不是检查在Marquee in listview
给出的答案答案 1 :(得分:4)
working on my phone
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/lblTitle"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:singleLine="true"
android:scrollHorizontally="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:freezesText="true"
android:layout_width="140dp"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="15dp"
android:gravity="center"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:text="Book Title sad ds sdas das asdas das asd asd sad as"
android:textColor="#FFFFFF"
android:textSize="12dp" />
</LinearLayout>
答案 2 :(得分:3)
此代码适合您。
<TextView
android:text="START | lunch 20.00 | Dinner 60.00 | Travel 60.00 | Doctor 5000.00 | lunch 20.00 | Dinner 60.00 | Travel 60.00 | Doctor 5000.00 | END"
android:id="@+id/MarqueeText" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:singleLine="true"
android:ellipsize="marquee" android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:paddingLeft="15dip"
android:paddingRight="15dip"
android:focusable="true"
android:focusableInTouchMode="true"
android:freezesText="true">
</TextView>
感谢。
答案 3 :(得分:1)
此代码有效
<TextView
android:text="A very long book title"
android:id="@+id/book_title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:paddingLeft="15dip"
android:paddingRight="15dip"
android:focusable="true"
android:focusableInTouchMode="true"
android:freezesText="true">
答案 4 :(得分:1)
我遇到了同样的问题。 汗的答案是正确的,但有时候 textview.setSelected(真); 当文本视图无法始终获得焦点时,它不起作用。 因此,为了确保TextView Marquee正常工作,我必须使用自定义TextView。
public class CustomTextView extends TextView {
public CustomTextView(Context context) {
super(context);
}
public CustomTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CustomTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) {
if(focused)
super.onFocusChanged(focused, direction, previouslyFocusedRect);
}
@Override
public void onWindowFocusChanged(boolean focused) {
if(focused)
super.onWindowFocusChanged(focused);
}
@Override
public boolean isFocused() {
return true;
}
}
然后,您可以使用自定义TextView作为布局.xml文件中的滚动文本视图,如下所示:
<com.example.myapplication.CustomTextView
android:id="@+id/tvScrollingMessage"
android:text="@string/scrolling_message_main_wish_list"
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit ="marquee_forever"
android:focusable="true"
android:focusableInTouchMode="true"
android:scrollHorizontally="true"
android:layout_width="match_parent"
android:layout_height="40dp"
android:background="@color/black"
android:gravity="center"
android:textColor="@color/white"
android:textSize="15dp"
android:freezesText="true"/>
注意:在上面的代码片段中,com.example.myapplication是一个示例包名称,应该用您自己的包名替换。
希望这会对你有所帮助。 干杯!
答案 5 :(得分:0)
这行代码工作100%,只需将这些行放在textview xml代码中,它就会开始工作
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit ="marquee_forever"
android:scrollHorizontally="true"
android:focusable="true"
android:focusableInTouchMode="true"