我不知道这是否可能,所以我将提出我的问题,然后看看这是否可以完成。因此,我在表格中有一个包含一些快速信息的部分,但我想对其进行调整,以便当用户单击 a 时,TableRow
该行将展开以显示其他信息(初始视图中不需要的东西)和然后在重新选择同一行时折叠。TableRow
设置了一个(在GridLayout
layout:height 中固定为 45dip,因为它提供了基本概述),然后有 3 个TextViews
(一个是日期标签,另一个是标题,最后一个是消息)。当用户单击TableRow
我要展开TableRow
时,最后一个完整的消息TextView
可以读取(因为现在它只显示第一行只是为了节省空间)。我不知道是否有任何代码会有所帮助,但这是TableRow
布局的代码:
<TableRow xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="?android:attr/selectableItemBackground">
<GridLayout
android:layout_width="fill_parent"
android:layout_height="45dip"
android:columnCount="2"
android:rowCount="3"
android:layout_marginTop="10dip">
<TextView
android:layout_width="wrap_content"
android:layout_height="44dip"
android:id="@+id/alertDateText"
android:gravity="center_vertical"
android:textColor="@color/black"
android:layout_marginLeft="10dip"
android:layout_row="0"
android:layout_rowSpan="2"
android:text="12/12/2013"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/alertTitleText"
android:layout_marginLeft="10dip"
android:layout_column="1"
android:layout_row="0"
android:textColor="@color/black"
android:textStyle="bold"
android:text="Alert Title"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/alertMessageText"
android:layout_marginLeft="10dip"
android:layout_column="1"
android:layout_row="1"
android:textStyle="italic"
android:textColor="@color/DarkSlateGray"
android:text="Alert Message"/>
<View
android:layout_width="match_parent"
android:layout_height="1dip"
android:background="@color/LightSlateGray"
android:layout_marginLeft="10dip"
android:layout_marginRight="10dip"
android:layout_row="2"
android:layout_columnSpan="2"/>
</GridLayout>
</TableRow>
然后这是我将TextViews
用来自 a 的数据填充的活动WebService
(我还没有连接该部分,因为我想确保我可以执行扩展/折叠功能,否则我需要更改此设计区域:
Integer alertCount = 3;
for (int i = 0; i < alertCount; i++) {
TableRow alertRow = (TableRow)inflater.inflate(R.layout.table_row_alert_holder, alertTable, false);
alertRow.setClickable(true);
alertRow.setTag(i);
alertRow.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
TextView dateText = (TextView)alertRow.findViewById(R.id.alertDateText);
Date date = new Date();
SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy");
dateText.setText(format.format(date));
TextView alertHeader = (TextView)alertRow.findViewById(R.id.alertTitleText);
alertHeader.setText("Alert Title Number: " + i);
TextView alertMessage = (TextView)alertRow.findViewById(R.id.alertMessageText);
alertMessage.setText("This is a really long message that will go in one of the alerts since it notifies the user about some kind of form that was declined in the service area");
alertTable.addView(alertRow);
}