我想在 Android 中创建一个
TextView
,当单击它时,会显示文本的其余部分,即类似于导入语句的隐藏/显示,其中
单击减号/加号显示/隐藏其余的导入语句。
我想要这样是为了节省屏幕空间!
我见过带有 Textview
和 Spinner
的示例 - 但这些正在创建列表以从中选择项目 - 我只想要一个简单的隐藏/显示,显示标题,以及用于隐藏/显示的箭头或减号/加号完整的文档。
在您的情况下,只需创建一个自定义布局,其中包含两个文本视图,而不是创建自定义文本视图。您可以编写方法来设置/获取文本并显示/隐藏布局中存在的任何文本视图。
创建自定义列表视图适配器,在视图方法中添加引用/声明加号/减号按钮,在 onClick 语句(适配器内部)中添加加号和减号的方法,这将根据“单击”的内容(即当加号时)切换布局单击执行替代布局,当减去选择时执行标准布局。 如果您不确定,有大量关于创建自定义适配器的在线资源..
我认为你需要这样的东西:
XML:
<LinearLayout
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_height="wrap_content">
<TextView
android:id="@+id/expandableTextView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<ImageButton
android:id="@+id/expandBtn"
android:src="@drawable/plusIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
代码:
final int MIN_CHARS = 10;
String fullText;
boolean isExpanded;
TextView textView = (TextView) findViewById(R.id.expandableTextView);
ImageButton imageButton = (ImageButton) findViewById(R.id.expandBtn);
fullText = textView.getText().toString();
textView.setText(fullText.substring(0,MIN_CHARS));
imageButton.setImageResource(R.drawable.plusIcon);
imageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
isExpanded = ! isExpanded;
imageButton.setImageResource(isExpanded?R.drawable.minusIcon:R.drawable.plusIcon);
textView.setText(isExpanded?fullText:fullText.substring(0,MIN_CHARS));
}
});