Git Product home page Git Product logo

Comments (21)

shineM avatar shineM commented on May 14, 2024

不知道你的具体业务场景,如果你要分页加载或者分层级加载把新加入的节点塞进去然后刷新就行了

from treeview.

MirrorFlower avatar MirrorFlower commented on May 14, 2024

当我将整个item设置为响应点击事件的时候 展开合上功能也失效了 只能响应点击事件了

from treeview.

shineM avatar shineM commented on May 14, 2024

View的touch事件只能被消费一次,既然你的textView消费了就不会传给它的父View处理了;一个View只能设一个OnClickListener。针对上面两个事实和你的需求,可以在onClick中主动调用treeView.toggleNode(node)实现展开收起.

from treeview.

shineM avatar shineM commented on May 14, 2024

如果是替换的话 让node直接指向新的对象然后刷新不就好了吗 至于增加翻倍了初步怀疑是你在bindView的时候执行的增加

from treeview.

MirrorFlower avatar MirrorFlower commented on May 14, 2024

大神 能否留下QQ 我感觉我有好多想请教你的 - -!

from treeview.

shineM avatar shineM commented on May 14, 2024

和本库有关的一切问题你都可以在这里提问,关于其他的问题我能解答的Google都能帮到你 :)

from treeview.

MirrorFlower avatar MirrorFlower commented on May 14, 2024

@OverRide
public void bindView(final TreeNode treeNode) {
textView.setText(treeNode.getValue().toString());
imageView.setRotation(treeNode.isExpanded() ? 90 : 0);
itemView.setOnClickListener(new View.OnClickListener() {
@OverRide
public void onClick(View v) {
mainActivity.getValue(treeNode.getValue().toString());
}
});
}
bindView里 我给整个item设置的监听 然后调用了Activity的方法将treeNode.getValue().toString()返给了activity ,activity里判断:
public void getValue(String value) {
switch (value) {
case "Parent0":
//如何实现点击Parent0增加2个子项
break;
}
}

from treeview.

MirrorFlower avatar MirrorFlower commented on May 14, 2024

buildTree()里面就初始化了一级的列表
private void buildTree() {
root = TreeNode.root();
for (int i = 0; i < 3; i++) {
treeNode1 = new TreeNode(new String("Parent" + i));
treeNode1.setLevel(0);
root.addChild(treeNode1);
}
}

from treeview.

shineM avatar shineM commented on May 14, 2024

只加一次还是点击一次加一次?展开收起都加?

from treeview.

MirrorFlower avatar MirrorFlower commented on May 14, 2024

只要点击Parent0展开 就要请求网络重新加载数据(数据条目由可能增加 也有可能条目不变 但是内容变了)

from treeview.

shineM avatar shineM commented on May 14, 2024

网络请求回来后直接更新parent0的子节点数据(添加删除更新),然后调用treeView的expandNode(parent0)就可以了吧

from treeview.

MirrorFlower avatar MirrorFlower commented on May 14, 2024

public void getValue(String value) {
switch (value) {
case "Parent0":
treeView.toggleNode(treeView.getAllNodes().get(0));
for (int i = 0; i < 2; i++) {
if (treeView.getAllNodes().get(0).isExpanded()) {
treeNode2 = new TreeNode(new String("新增" + i));
treeNode2.setLevel(1);
treeView.addNode(treeView.getAllNodes().get(0), treeNode2);
}
}
treeView.expandNode(treeView.getAllNodes().get(0));
break;
}
}
麻烦大神帮我看看问题出在哪?

from treeview.

shineM avatar shineM commented on May 14, 2024

treeView.getAllNodes().get(0)不等于你点击的node,你把你的getValue(String value)改成getValue(TreeNode node),然后用参数里面的node

from treeview.

MirrorFlower avatar MirrorFlower commented on May 14, 2024

public void getValue(TreeNode node) {
switch (node.getValue().toString()) {
case "Parent0":
treeView.toggleNode(node);
for (int i = 0; i < 2; i++) {
if (node.isExpanded()) {
treeNode2 = new TreeNode(new String("新增" + i));
treeNode2.setLevel(1);
treeView.addNode(node, treeNode2);
}else {
treeView.deleteNode(treeNode2);
}
}
treeView.refreshTreeView();
break;
}
}
这样的话还是有点问题 反复的执行展开合上操作 条目数量还是有问题

from treeview.

shineM avatar shineM commented on May 14, 2024

你执行每一行代码前先搞清楚它是干什么的

treeView.toggleNode(node);//这行代码的目的是什么;
if (node.isExpanded()) {
//确定是在这里执行增加吗?不是在else吗
}else{

}
treeView.refreshTreeView();//这个有用吗 为什么不是调treeView.toggleNode(node);

from treeview.

MirrorFlower avatar MirrorFlower commented on May 14, 2024

treeView.toggleNode(node)是手动设置展开 不是么

if (node.isExpanded())判断是否是展开状态 如果是展开状态 才去add并显示数据 不是吗 为何是在else呀

treeView.refreshTreeView();用这个方法 是发现 在展开合上的时候 前面箭头不会转向 ,用了这个就好了 - -! 求大神继续指教 - -! 感激不尽

from treeview.

shineM avatar shineM commented on May 14, 2024

请先说明一下你的具体需求,点击未展开的节点然后请求网络刷新数据?还是先展开再请求网络刷新数据。收起的时候为什么又要删除?

from treeview.

MirrorFlower avatar MirrorFlower commented on May 14, 2024

先展开再请求网络,数据太多 需要分层加载, 我没明白的地方是:如何保证每次展开的时候 都能刷新到最新的数据(每次展开都要去重新请求)

from treeview.

MirrorFlower avatar MirrorFlower commented on May 14, 2024

未展开的节点先不管 展开一个 就请求一个 0.0

from treeview.

shineM avatar shineM commented on May 14, 2024

@OverRide
public void bindView(final TreeNode treeNode) {
imageView.setRotation(treeNode.isExpanded() ? 90 : 0);
itemView.setOnClickListener(new View.OnClickListener() {
@OverRide
public void onClick(View v) {
treeView.toggleNode(treeNode);
if (treeNode.isExpanded()) {
activity.getValue(treeNode);
}
}
});
}
public void getValue(TreeNode node) {
for (int i = 0; i < 2; i++) {
TreeNode newNode = new TreeNode(new String("新增" + i));
newNode.setLevel(1);
node.addChild(newNode);
}
treeView.refreshTreeView();

}

你试试这么写有没有问题 我尽力了

from treeview.

MirrorFlower avatar MirrorFlower commented on May 14, 2024

好 感谢

from treeview.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.