带有选框的TextView无法正常工作

时间:2014-06-11 14:11:20

标签: android textview marquee

尽管我按照教程设法制作了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"/>

2 个答案:

答案 0 :(得分:1)

也许你的文字长度不足以让Marquee运行。换句话说,选框仅在文本远离其各自的宽度/区域时起作用。因此,我建议尝试将android:layout_width设置为200dp甚至更多。然后尝试marquee。我希望它有所帮助。

答案 1 :(得分:0)

可能不是解决方案的答案,但必须显示代码。如果您设置以下参数,它是否有效?我不认为cursorVisible对此很重要,但可能是滚动条和focusableInTouchMode。我已经尝试过这个参数,但它确实有效。

android:scrollbars="horizontal"    
android:cursorVisible="false"   
android:focusableInTouchMode="true"