@@ -63,6 +63,9 @@ public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType
63
63
64
64
65
65
if (iTableView != null ) {
66
+ // To get better performance for fixed size TableView
67
+ jRecyclerView .setHasFixedSize (iTableView .hasFixedWidth ());
68
+
66
69
// set touch m_iHorizontalListener to scroll synchronously
67
70
if (m_iHorizontalListener == null ) {
68
71
m_iHorizontalListener = iTableView .getHorizontalRecyclerViewListener ();
@@ -123,18 +126,22 @@ public void onViewAttachedToWindow(RecyclerView.ViewHolder holder) {
123
126
124
127
SelectionHandler selectionHandler = m_iTableAdapter .getTableView ().getSelectionHandler ();
125
128
126
- int nXPosition = selectionHandler .getSelectedColumnPosition ();
127
- if (nXPosition != SelectionHandler .UNSELECTED_POSITION && selectionHandler
128
- .getSelectedRowPosition () == SelectionHandler .UNSELECTED_POSITION ) {
129
+ if (selectionHandler .isAnyColumnSelected ()) {
130
+
129
131
AbstractViewHolder cellViewHolder = (AbstractViewHolder ) ((CellRowViewHolder ) holder )
130
- .m_jRecyclerView .findViewHolderForAdapterPosition (nXPosition );
132
+ .m_jRecyclerView .findViewHolderForAdapterPosition (selectionHandler
133
+ .getSelectedColumnPosition ());
131
134
132
135
if (cellViewHolder != null ) {
133
136
cellViewHolder .setBackgroundColor (m_iTableAdapter .getTableView ().getSelectedColor
134
137
());
135
138
cellViewHolder .setSelected (true );
136
139
137
140
}
141
+ } else if (selectionHandler .isRowSelected (holder .getAdapterPosition ())) {
142
+
143
+ viewHolder .m_jRecyclerView .setSelected (true , m_iTableAdapter .getTableView ()
144
+ .getSelectedColor ());
138
145
}
139
146
140
147
}
@@ -151,6 +158,7 @@ public void onViewDetachedFromWindow(RecyclerView.ViewHolder holder) {
151
158
@ Override
152
159
public void onViewRecycled (RecyclerView .ViewHolder holder ) {
153
160
super .onViewRecycled (holder );
161
+
154
162
CellRowViewHolder viewHolder = (CellRowViewHolder ) holder ;
155
163
// ScrolledX should be cleared at that time. Because we need to prepare each
156
164
// recyclerView
0 commit comments