Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ public class TreeViewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
private List<TreeNode> displayNodes;
private int padding = 30;
private OnTreeNodeListener onTreeNodeListener;
private OnLongClickListener mLongClickListener;
private boolean toCollapseChild;

public TreeViewAdapter(List<? extends TreeViewBinder> viewBinders) {
Expand All @@ -35,7 +36,9 @@ public TreeViewAdapter(List<TreeNode> nodes, List<? extends TreeViewBinder> view
findDisplayNodes(nodes);
this.viewBinders = viewBinders;
}

public void setLongClickListener(OnLongClickListener longClickListener) {
mLongClickListener = longClickListener;
}
/**
* 从nodes的结点中寻找展开了的非叶结点,添加到displayNodes中。
*
Expand Down Expand Up @@ -84,12 +87,20 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position, List<
}

@Override
public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) {
public void onBindViewHolder(final RecyclerView.ViewHolder holder, final int position) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
holder.itemView.setPaddingRelative(displayNodes.get(position).getHeight() * padding, 3, 3, 3);
}else {
holder.itemView.setPadding(displayNodes.get(position).getHeight() * padding, 3, 3, 3);
}
if (mLongClickListener != null){
holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
return mLongClickListener.onLongClick(displayNodes.get(holder.getLayoutPosition()),holder);
}
});
}
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Expand Down Expand Up @@ -191,7 +202,10 @@ public interface OnTreeNodeListener {
*/
void onToggle(boolean isExpand, RecyclerView.ViewHolder holder);
}

public interface OnLongClickListener{
//boolean onLongClick();
boolean onLongClick(TreeNode node, RecyclerView.ViewHolder holder);
}
public void refresh(List<TreeNode> treeNodes) {
displayNodes.clear();
findDisplayNodes(treeNodes);
Expand Down