我有一个ListView及其TextView如下。 ListView中的某些文本太长,因此我想使其水平滚动。
<ListView
android:id="@+id/food_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
android:background="@drawable/border_background" />
<TextView
android:id="@+id/food_item"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:singleLine="true"
android:textColor="@color/black"
android:textSize="14sp" />
在我的addTextChangedListener
内,有以下代码(当正确搜索EditText时,列表将更改)。然而
ListView中的每个TextView项仅一行,但不会水平滚动。使用System.out.println(foodName.getText())
可以在ListView中获得所有项的名称,所以在for循环中使用foodNameText.setSelected(true);
时有什么问题吗?
myListAdapter = new SimpleAdapter(AddNewFoodActivity.this, foodListArray, R.layout.food_list_view, colHEAD, dataCell);
foodList.setAdapter(myListAdapter);
int count = foodList.getAdapter().getCount();
for (int i = 0; i < count; i++) {
TextView foodNameText = (TextView) foodList.getAdapter().getView(i, null,
foodList).findViewById(R.id.food_item);
foodNameText.setSelected(true);
//System.out.println(foodName.getText());
}
答案 0 :(得分:0)
尝试以下代码:
<TextView
android:id="@+id/toolbar_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:text="Your text" />
foodNameText.setEllipsize(TextUtils.TruncateAt.MARQUEE);
foodNameText.setHorizontallyScrolling(true);
foodNameText.setMarqueeRepeatLimit(-1);
foodNameText.setFocusable(true);
foodNameText.setFocusableInTouchMode(true);