سؤال

أحاول تحديث مدخلات jface treeviwer باستخدام دوري setInput() طريقة. أيضا أنا استخدم

viewer.setExpandedElements(expandedElements);
viewer.setExpandedTreePaths(expandedTreePaths);

طرق لإنقاذ حالة الشجرة. ولكن بعد كل setInput() اتصل بـ TreeViewer Flickers. كيف يمكن تجنب الخفقان؟

هل كانت مفيدة؟

المحلول

هل يتغير المدخلات الفعلية؟ إذا لم يكن بإمكانك الاتصال refresh() بدلاً من ذلك ... أو استخدام طرق TreeViewers مثالية لإضافة/إزالة/تحديث لتجنب الاضطرار إلى إعادة بناء الشجرة بأكملها.

يمكنك محاولة الاتصال viewer.getTree().setRedraw(false) قبل المكالمات إلى setExpand, ، وثم viewer.getTree().setRedraw(true) بعد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top