具有多个项目的Listview中的Android Marquee文本

时间:2018-02-07 18:01:07

标签: android listview text marquee

任何人都可以帮我解决如何使用选框文本在列表视图中水平滚动文本视图。我在简单的textview中使用字幕文本它的工作正常我在listview textview中使用的相同概念它不工作/滚动请帮助我。由于
这是我的xml单一列表项文件

<br><?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:padding="15dp"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="340dp"
        android:layout_height="wrap_content"
        android:ellipsize="marquee"
        android:gravity="center_vertical"
        android:id="@+id/list_text"
        android:marqueeRepeatLimit="marquee_forever"
        android:scrollHorizontally="true"
        android:textColor="#cc0000"
        android:singleLine="true" />

</LinearLayout>


这是我的Java文件

LayoutInflater inflater =(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            View child = inflater.inflate(R.layout.list_item, null);<br>
            TextView text=(TextView)child.findViewById(R.id.list_text);<br>
            text.setSelected(true);<br>
            arrayAdapter = new ArrayAdapter<String>(getApplicationContext(), R.layout.list_item,R.id.list_text, s);<br>
            listView.setAdapter(arrayAdapter);

1 个答案:

答案 0 :(得分:0)

在您的代码中,您会夸大视图,该视图与项目视图的类型相同,但不是项目视图。要修改项视图,需要覆盖适配器的getView()方法。请尝试以下代码:

        arrayAdapter = new ArrayAdapter<String>(getApplicationContext(), R.layout.list_item, R.id.list_text, s){
            @NonNull
            @Override
            public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
                convertView = super.getView(position, convertView, parent);
                TextView tv = convertView.findViewById(R.id.list_text);
                tv.setSelected(true);
                return convertView;
            }
        };
        list.setAdapter(arrayAdapter);