Google Play マーケットのものとまったく同じように、折りたたみ可能なビューを実装したいと考えています。コンテンツの行数と矢印が表示され、矢印をタップするとコンテンツ全体が表示されます。これは ExpandableListView で実装されていますか、それとも他の解決策はありますか?
私が探しているものを強調して添付されたスクリーンショット。ありがとう。
Google Play マーケットのものとまったく同じように、折りたたみ可能なビューを実装したいと考えています。コンテンツの行数と矢印が表示され、矢印をタップするとコンテンツ全体が表示されます。これは ExpandableListView で実装されていますか、それとも他の解決策はありますか?
私が探しているものを強調して添付されたスクリーンショット。ありがとう。
もっと簡単な方法があります:
final TextView descriptionText = (TextView) view.findViewById(R.id.detail_description_content);
final TextView showAll = (TextView) view.findViewById(R.id.detail_read_all);
showAll.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
showAll.setVisibility(View.INVISIBLE);
descriptionText.setMaxLines(Integer.MAX_VALUE);
}
});
XML:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/detail_description_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<TextView
android:id="@+id/detail_description_content"
android:maxLines="5"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/detail_read_all"
android:clickable="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
</ScrollView>
重要な部分は maxlines と scrollview です。これにより、アニメーションが遅くなることはありません (入札がより複雑になります) が、すぐに開く効果が得られます。
私のひどい英語を許してください。
Warpzip レスポンスに基づく
res/values/strings.xml
...
...
<string name="str_more"><![CDATA[<p><b>This is the header</b><u>( see more ..)</u>]]></string>
<string name="str_less"><![CDATA[<p><b>This is the header</b><u>(less ..)</u>]]></string>
<string name="str_details"><![CDATA[<p>A long string of text that do not want to show all the time.A long string of text that do not want to show all the time.A long string of text that do not want to show all the time.A long string of text that do not want to show all the time.A long string of text that do not want to show all the time.</p>]]></string>
...
...
レイアウトでは、レイアウトでは、垂直方向の LinearLayout (または少し作業を加えて RelativeLayout) を使用してスクロールビューを含めることができます。これらの中で:
<TextView
android:id="@+id/txtvw_header"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="@string/str_more"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/txtvw_detail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/txtvw_tituloEntreTodos"
android:text="@string/str_details"
android:textAppearance="?android:attr/textAppearanceMedium" />
最後に私たちの活動
view = inflater.inflate(R.layout.f_entretodos, container, false);
info = (TextView) view.findViewById(R.id.txtvw_header);
fullinfo = (TextView) view.findViewById(R.id.txtvw_detail);
info.setText(Html.fromHtml(getString(R.string.str_more)));
fullinfo.setText(Html.fromHtml(getString(R.string.str_detail)));
fullinfo.setVisibility(View.GONE);
info.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (fullinfo.isShown()){
fullinfo.setVisibility(View.GONE);
info.setText(Html.fromHtml(getString(R.string.str_more)));
}else{
fullinfo.setVisibility(View.VISIBLE);
info.setText(Html.fromHtml(getString(R.string.str_less)));
}
}
});