我试图在 TableLayout 中以相同的宽度显示数据行恰好位于其各自标题下方。数据通过设置为数据适配器的 RecyclerView 接收,但根据我的要求仅显示第一行,而其他所有行都被压缩(压缩)到左侧,而无需注意标题。
我已尝试将除 bindView 中的第一行以外的所有数据行的标题行的可见性设置为 GONE >功能,但问题仍然相同。我还尝试过使标题行成为主机XML片段的一部分,该主机使用 RecyclerView 在开始时显示。实际上,我有一个 一个Host XML 文件,该文件由 RecyclerView 和其他 XML文件 组成>由要在该RecyclerView中进行修改的 TableLayout 组成。
我的Java类是:
private class PinHistoryViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
private TableRow headingRow;
private Button copyPinBtn;
private TextView mItemPinNumber;
private TextView mItemOriginalWas;
private TextView mItemRemainingAmount;
public PinHistoryViewHolder(View itemView) {
super(itemView);
headingRow = itemView.findViewById(R.id.headingRowPinHistory);
copyPinBtn = itemView.findViewById(R.id.copyPinHistoryPinButton);
mItemPinNumber = (TextView) itemView.findViewById(R.id.pinNumberHIstoryListTextView);
mItemOriginalWas = (TextView) itemView.findViewById(R.id.originalWasPinHistoryTextView);
mItemRemainingAmount = (TextView) itemView.findViewById(R.id.remainingAmountPinHistoryTextView);
itemView.setOnClickListener(this);
}
public void bindView(final int position) {
if (position == 0) {
headingRow.setVisibility(View.VISIBLE);
mItemPinNumber.setText(String.valueOf(Common.pinHistories.get(position).getPin()));
mItemOriginalWas.setText(String.valueOf(Common.pinHistories.get(position).getOriginalWas()));
mItemRemainingAmount.setText(String.valueOf(Common.pinHistories.get(position).getRemainingAmount()));
copyPinBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Common.copyPin = Common.pinHistories.get(position).getPin();
}
});
} else {
headingRow.setVisibility(View.GONE);
mItemPinNumber.setText(String.valueOf(Common.pinHistories.get(position).getPin()));
mItemOriginalWas.setText(String.valueOf(Common.pinHistories.get(position).getOriginalWas()));
mItemRemainingAmount.setText(String.valueOf(Common.pinHistories.get(position).getRemainingAmount()));
copyPinBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Common.copyPin = Common.pinHistories.get(position).getPin();
}
});
}
}
public void onClick(View view) {
}
}
由TableLayout组成的我的XML文件是:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<!-- Heading Row -->
<TableRow
android:id="@+id/headingRowPinHistory"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#e9eaec">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="1dp"
android:background="#F8F9FB"
android:gravity="center"
android:padding="15dp"
android:text="Pin"
android:textColor="@android:color/black"
android:textSize="14sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="1dp"
android:background="#F8F9FB"
android:gravity="center"
android:padding="15dp"
android:text="Orignal Was"
android:textColor="@android:color/black"
android:textSize="14sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="1dp"
android:background="#F8F9FB"
android:gravity="center"
android:padding="15dp"
android:text="Remaining Amount"
android:textColor="@android:color/black"
android:textSize="14sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="1dp"
android:background="#F8F9FB"
android:gravity="center"
android:padding="15dp"
android:text=""
android:textColor="@android:color/black"
android:textSize="14sp" />
</TableRow>
<!-- Data Row -->
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#E7E7E7">
<LinearLayout
android:layout_margin="1dp"
android:background="@color/white">
<TextView
android:id="@+id/pinNumberHIstoryListTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@android:color/white"
android:gravity="center"
android:padding="15dp"
android:text="EAE886961457257300"
android:textColor="@android:color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout
android:layout_margin="1dp"
android:background="@color/white">
<TextView
android:id="@+id/originalWasPinHistoryTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@android:color/white"
android:gravity="center"
android:padding="15dp"
android:text="500"
android:textColor="@android:color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout
android:layout_margin="1dp"
android:background="@color/white">
<TextView
android:id="@+id/remainingAmountPinHistoryTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@android:color/white"
android:gravity="center"
android:padding="15dp"
android:text="-500"
android:textColor="@android:color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout
android:layout_margin="1dp"
android:background="@color/white">
<Button
android:id="@+id/copyPinHistoryPinButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@color/greenish"
android:gravity="center"
android:padding="15dp"
android:text="Copy Pin"
android:textAllCaps="false"
android:textColor="@android:color/white"
android:textSize="14sp" />
</LinearLayout>
</TableRow>
</TableLayout>
</LinearLayout>
由RecyclerView组成的我的Host XML文件是:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<android.support.v7.widget.RecyclerView
android:id="@+id/pinHistoryListRecyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</ScrollView>
</HorizontalScrollView>
</LinearLayout>
我希望所有数据行都恰好位于其各自的标题下,并且具有相同的宽度,以便该表看起来像一个普通的表。