環境
行が基本的に 2 つの TextView (タイトルとコンテンツ) で構成されるリスト ビューがあります。
2 番目の 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);
}
}
問題
上記のコードはうまく機能します。2番目の TextView ( content ) も選択できるようにしたいので、設定しましたandroid:textIsSelectable="true"
(プログラムで設定も試みました)。
onItemClick
しかし、呼び出されなくなったため、TextView を展開/折りたたむことはできません
これは、textIsSelectable
すべてのクリック イベントをキャッチするためです... Android doc から:
このメソッドを呼び出して textIsSelectable の値を設定すると、フラグ focusable、focusableInTouchMode、clickable、および longClickable が同じ値に設定されます。これらのフラグは、属性 android:focusable、android:focusableInTouchMode、android:clickable、および android:longClickable に対応しています。これらのフラグのいずれかを以前に設定した状態に復元するには、setFocusable()、setFocusableInTouchMode()、setClickable()、または setLongClickable() の 1 つ以上のメソッドを呼び出します。
後でこれらのフラグを false に設定しようとしましたsetTextIsSelectable(true)
が、機能させることができませんでした。
では、 との両方を使用する方法はtextIsSelectable
ありonItemClick
ますか?
PS: Android > 4.0 のみをサポートしています。