feat:Scroller support scrollable

This commit is contained in:
pengfei.zhou 2021-04-23 17:30:50 +08:00 committed by osborn
parent 9e6d9131ee
commit 4cc67a463d
3 changed files with 25 additions and 2 deletions

View File

@ -15,8 +15,11 @@
*/ */
package pub.doric.shader; package pub.doric.shader;
import android.annotation.SuppressLint;
import android.content.Context; import android.content.Context;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.MotionEvent;
import android.view.View;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import com.github.pengfeizhou.jscore.JSONBuilder; import com.github.pengfeizhou.jscore.JSONBuilder;
@ -144,9 +147,24 @@ public class ScrollerNode extends SuperNode<HVScrollView> implements IDoricScrol
return hvScrollView; return hvScrollView;
} }
@SuppressLint("ClickableViewAccessibility")
@Override @Override
protected void blend(HVScrollView view, String name, JSValue prop) { protected void blend(HVScrollView view, String name, JSValue prop) {
if ("content".equals(name)) { if ("scrollable".equals(name)) {
if (!prop.isBoolean()) {
return;
}
if (prop.asBoolean().value()) {
this.getView().setOnTouchListener(null);
} else {
this.getView().setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return true;
}
});
}
} else if ("content".equals(name)) {
if (!prop.isString()) { if (!prop.isString()) {
return; return;
} }

View File

@ -127,7 +127,9 @@ - (void)requestLayout {
} }
- (void)blendView:(DoricScrollView *)view forPropName:(NSString *)name propValue:(id)prop { - (void)blendView:(DoricScrollView *)view forPropName:(NSString *)name propValue:(id)prop {
if ([@"content" isEqualToString:name]) { if ([@"scrollable" isEqualToString:name]) {
self.view.scrollEnabled = [prop boolValue];
} else if ([@"content" isEqualToString:name]) {
self.childViewId = prop; self.childViewId = prop;
} else if ([@"onScroll" isEqualToString:name]) { } else if ([@"onScroll" isEqualToString:name]) {
self.onScrollFuncId = prop; self.onScrollFuncId = prop;

View File

@ -42,6 +42,9 @@ export class Scroller extends Superview {
@Property @Property
onScrollEnd?: (offset: { x: number, y: number }) => void onScrollEnd?: (offset: { x: number, y: number }) => void
@Property
scrollable?: boolean
allSubviews() { allSubviews() {
return [this.content] return [this.content]
} }