小编Mat*_*ets的帖子

ListView:textIsSelectable和onItemClick

上下文

我有一个列表视图,其中行基本上由两个TextView(标题内容)组成.

第二个TextView可以有一个长文本,所以我设置maxLines="6".当用户点击该行时,我将其删除maxLines以显示全文.

public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {

        TextView content = (TextView ) view.findViewById(R.id.content);

        int limit = getResources().getInteger(R.integer.default_max_lines);

        if (content.getMaxLines() > limit) {
            content.setMaxLines(limit);
        }
        else {
            content.setMaxLines(Integer.MAX_VALUE);
        }
    }
Run Code Online (Sandbox Code Playgroud)

问题

以上代码效果很好.我希望能够选择我的第二个TextView(内容),所以我设置android:textIsSelectable="true"(也尝试以编程方式设置).

但是我无法扩展/折叠我的TextView,因为onItemClick不再调用它

这是因为textIsSelectable捕获了所有点击事件......来自Android doc:

当您调用此方法来设置textIsSelectable的值时,它会将可聚焦标记,focusableInTouchMode,clickable和longClickable设置为相同的值.这些标志对应于android:focusable,android:focusableInTouchMode,android:clickable和android:longClickable属性.要将任何这些标志还原到先前设置的状态,请调用以下一种或多种方法:setFocusable(),setFocusableInTouchMode(),setClickable()或setLongClickable().

我尝试将这些标志设置为false,setTextIsSelectable(true)但我没有设法让它工作.

那么,任何想法如何使用textIsSelectableonItemClick

PS:仅支持Android> 4.0.

android listview textview

7
推荐指数
1
解决办法
1454
查看次数

标签 统计

android ×1

listview ×1

textview ×1