尽管我按照教程设法制作了marquee TextView
,并且它正常工作,当我尝试在TextView
的其他活动中创建另一个marquee
时那没起效。我准确地按照同样的步骤但无济于事。你觉得我错过了什么?
更新
我认为问题出现在视图的focus
中,因为我已经测试了TextView
是否在调用imgPathTv.setSelected(true)
后仍然具有焦点,结果是它没有对焦。
Updated_Code
String imgPath = dataBaseRow.getImgPath();
if (imgPath.equals("")) {
Log.d(TAG, "@createInfoReport(): dataBaseRow.getImgPath() Returns NULL");
imgPathTv.setText("NULL");
}else {
Log.d(TAG, "@createInfoReport(): dataBaseRow.getImgPath() Has Value");
imgPathTv.setSelected(true);
imgPathTv.setText(imgPath);
if(imgPathTv.findFocus() != null) {
Toast.makeText(getApplicationContext(), "there is a View has the Focus", Toast.LENGTH_SHORT).show();
}else
Toast.makeText(getApplicationContext(), "NO View has the Focus", Toast.LENGTH_SHORT).show();
}
Java_Code:
TextView imgPathTv = (TextView) mDialog.findViewById(R.id.imgPathValue);
Log.i(TAG, "@createInfoReport(): imgPathTv IS IN FOCUS");
imgPathTv.setSelected(true);
TextView_xml:
<TextView
android:id="@+id/imgPathValue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:fadingEdge="horizontal"/>
答案 0 :(得分:1)
也许你的文字长度不足以让Marquee运行。换句话说,选框仅在文本远离其各自的宽度/区域时起作用。因此,我建议尝试将android:layout_width
设置为200dp
甚至更多。然后尝试marquee
。我希望它有所帮助。
答案 1 :(得分:0)
可能不是解决方案的答案,但必须显示代码。如果您设置以下参数,它是否有效?我不认为cursorVisible对此很重要,但可能是滚动条和focusableInTouchMode。我已经尝试过这个参数,但它确实有效。
android:scrollbars="horizontal"
android:cursorVisible="false"
android:focusableInTouchMode="true"