Android 具有多个项目的列表视图中的选取框文本
Android Marquee Text In Listview with Multiple Item
任何人都可以帮助我如何使用选取框文本在列表视图中水平滚动 textview。我在简单的 textview 中使用选取框文本,当我在 listview textview 中使用相同的概念时它工作正常,它不是 working/scrolling 请帮助我。!谢谢
这是我的 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);
在您的代码中,您膨胀了一个与项目视图类型相同但不是项目视图的视图。要修改项目视图,您需要重写适配器的 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);
任何人都可以帮助我如何使用选取框文本在列表视图中水平滚动 textview。我在简单的 textview 中使用选取框文本,当我在 listview textview 中使用相同的概念时它工作正常,它不是 working/scrolling 请帮助我。!谢谢
这是我的 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);
在您的代码中,您膨胀了一个与项目视图类型相同但不是项目视图的视图。要修改项目视图,您需要重写适配器的 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);