膨胀Android布局

时间:2019-02-12 09:56:52

标签: android android-layout bridging

我正在尝试在React Native中加载android布局xml文件。

Custom_android_view.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:orientation="vertical"
    android:layout_centerInParent="true"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_marginHorizontal="10dp"
        android:id="@+id/txtView1"
        android:textSize="20dp"   
        android:text="Android Text View"
        android:layout_height="wrap_content" />

</LinearLayout>

我正在这个java类中扩展XML文件:

customView.Java文件

package com.rnanduicomp;
import android.content.Context;
import android.widget.LinearLayout;   

public class CustomView extends LinearLayout {

    public CustomView(Context context) {
        super(context);
    }

    public void init() {
        inflate(getContext(), R.layout.custom_android_view, this);
    }
}

我的customViewPackage文件

package com.rnanduicomp; 
import com.facebook.react.ReactPackage;
import com.facebook.react.bridge.NativeModule;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.uimanager.ViewManager;
import java.util.Collections;
import java.util.List;

public class CustomViewPackage implements ReactPackage {
    @Override
    public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
        return Collections.emptyList();
    }

    @Override
    public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
        return Collections.<ViewManager>singletonList(
                new CustomeViewManager()
        );
    }
}

我的customViewManager

    package com.rnanduicomp;

import com.facebook.react.uimanager.SimpleViewManager;
import com.facebook.react.uimanager.ThemedReactContext;

public class CustomeViewManager extends SimpleViewManager<CustomView> {

    public final String REACT_CLASS="CustomLinearView";

    @Override
    public String getName() {
        return REACT_CLASS;
    }

    @Override
    protected CustomView createViewInstance(ThemedReactContext reactContext) {
        return new CustomView(reactContext);
    }
}

customViewPackage已保存在mainapplication.java文件中。

我在react native中的customLinearView.js

import React, { requireNativeComponent,View, Component,ViewPropTypes } from "react-native";



module.exports=requireNativeComponent('CustomLinearView');

在app.js中

import CustomLinearView from "./Native-Modules/CustomLinearView.js";

在导入app.js并加载组件时。其显示空白页。 让我知道如何解决这个问题。

0 个答案:

没有答案