下面列出了怎么用android.view.ViewManager的API类实例代码及写法,或者点击链接到github查看源代码。
@CallSuper
public void destroy() {
if (isShown) {
isShown = false;
onViewDisappear();
}
yellowBoxDelegate.destroy();
if (view instanceof Destroyable) {
((Destroyable) view).destroy();
}
if (view != null) {
view.getViewTreeObserver().removeOnGlobalLayoutListener(this);
view.setOnHierarchyChangeListener(null);
if (view.getParent() instanceof ViewGroup) {
((ViewManager) view.getParent()).removeView(view);
}
view = null;
isDestroyed = true;
}
}
static void removeView(ViewManager parent, View child) {
if (parent == null || child == null) {
return;
}
try {
parent.removeView(child);
} catch (NullPointerException ignored) {
// This catch exists for modified versions of Android that have a buggy ViewGroup
// implementation. See b.android.com/77639, #121 and #49
}
}
@Override
public List<com.facebook.react.uimanager.ViewManager> createViewManagers(ReactApplicationContext reactContext) {
List<com.facebook.react.uimanager.ViewManager> modules = new ArrayList<>();
modules.add(new RNDownloadButton());
return modules;
}
@Override
public List<com.facebook.react.uimanager.ViewManager> createViewManagers(ReactApplicationContext reactContext) {
List<com.facebook.react.uimanager.ViewManager> modules = new ArrayList<>();
modules.add(new RNDownloadButton());
return modules;
}
static void removeView(ViewManager parent, View child) {
if (parent == null || child == null) {
return;
}
try {
parent.removeView(child);
} catch (Exception ignored) {
// This catch exists for modified versions of Android that have a buggy ViewGroup
// implementation. See b.android.com/77639, #121 and #49
}
}
public static void removeFromParent(View view) {
ViewParent parent = view.getParent();
if (parent != null) {
((ViewManager) parent).removeView(view);
}
}
public void detachView() {
if (view == null || view.getParent() == null) return;
((ViewManager) view.getParent()).removeView(view);
}
protected void unloadSplashVideo() {
if (logoAnimView != null) {
((ViewManager) logoAnimView.getParent()).removeView(logoAnimView);
logoAnimView = null;
}
}
/**
* Remove a view from a layout
*
* @param v the view to remove
*/
public static void remove(View v) {
if (v.getParent() != null) {
((ViewManager) v.getParent()).removeView(v);
}
}
/**
* Delete a row from shared prefs and the Linear Layout
* @param itemRow LinearLayout of the row to be deleted
*/
private void deleteRow(View itemRow){
((ViewManager)itemRow.getParent()).removeView(itemRow);
}