Comments (21)
不知道你的具体业务场景,如果你要分页加载或者分层级加载把新加入的节点塞进去然后刷新就行了
from treeview.
当我将整个item设置为响应点击事件的时候 展开合上功能也失效了 只能响应点击事件了
from treeview.
View的touch事件只能被消费一次,既然你的textView消费了就不会传给它的父View处理了;一个View只能设一个OnClickListener。针对上面两个事实和你的需求,可以在onClick中主动调用treeView.toggleNode(node)实现展开收起.
from treeview.
如果是替换的话 让node直接指向新的对象然后刷新不就好了吗 至于增加翻倍了初步怀疑是你在bindView的时候执行的增加
from treeview.
大神 能否留下QQ 我感觉我有好多想请教你的 - -!
from treeview.
和本库有关的一切问题你都可以在这里提问,关于其他的问题我能解答的Google都能帮到你 :)
from treeview.
@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.
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.
只加一次还是点击一次加一次?展开收起都加?
from treeview.
只要点击Parent0展开 就要请求网络重新加载数据(数据条目由可能增加 也有可能条目不变 但是内容变了)
from treeview.
网络请求回来后直接更新parent0的子节点数据(添加删除更新),然后调用treeView的expandNode(parent0)就可以了吧
from treeview.
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.
treeView.getAllNodes().get(0)不等于你点击的node,你把你的getValue(String value)改成getValue(TreeNode node),然后用参数里面的node
from treeview.
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.
你执行每一行代码前先搞清楚它是干什么的
treeView.toggleNode(node);//这行代码的目的是什么;
if (node.isExpanded()) {
//确定是在这里执行增加吗?不是在else吗
}else{
}
treeView.refreshTreeView();//这个有用吗 为什么不是调treeView.toggleNode(node);
from treeview.
treeView.toggleNode(node)是手动设置展开 不是么
if (node.isExpanded())判断是否是展开状态 如果是展开状态 才去add并显示数据 不是吗 为何是在else呀
treeView.refreshTreeView();用这个方法 是发现 在展开合上的时候 前面箭头不会转向 ,用了这个就好了 - -! 求大神继续指教 - -! 感激不尽
from treeview.
请先说明一下你的具体需求,点击未展开的节点然后请求网络刷新数据?还是先展开再请求网络刷新数据。收起的时候为什么又要删除?
from treeview.
先展开再请求网络,数据太多 需要分层加载, 我没明白的地方是:如何保证每次展开的时候 都能刷新到最新的数据(每次展开都要去重新请求)
from treeview.
未展开的节点先不管 展开一个 就请求一个 0.0
from treeview.
@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.
好 感谢
from treeview.
Related Issues (20)
- When expanding, the child elements pass through the groups below them HOT 2
- How to delete all treenode and refill data again ?, i am using retrofit data to get data and when i am swiperefresh the data is double HOT 2
- 你好,看到你的文章,本人很喜欢这个自定义View,如果给列表添加 搜索 ,应该怎么弄呢? HOT 1
- 树形列表 数据数据绑定方式 HOT 1
- 你好,请教下如何单选呢?而且单选不要自动选中上级,非常感谢! HOT 1
- 发现一个bug
- getSelectedNodes()方法获取不到选择的结果
- 获取选中下标 getIndex作用域 应该是 public 而不是 private HOT 1
- 如何继续添加子层级,比如你给的例子是三层,如何扩展到四层,甚至更多层。
- 这个树形控件可以添加header与footer吗? HOT 2
- 请教个问题\(^o^)/~
- 建议作者把TreeViewAdapter的构造方法改成public或留个public的构造方法
- 加载数据卡顿 HOT 2
- 展开后,可以向上滑动,展示出所有展开的内容,这个有办法做到吗
- Is this library support tri-state checkbox?
- 提供单选模式么
- selectNode()节点选中不可用
- how to set on click listener and toast id item click? HOT 1
- 怎么监听item被选择了?
- How to set onclickListener on second level item? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from treeview.