相关疑难解决方法(0)

React Native:调整自定义UI组件的大小

我已经构建了一个非常简单的原生Android UI组件,我想在单击来自我的本机项目的按钮时更新其子视图的大小.更确切地说,当单击此按钮时,我向我发送命令SimpleViewManager,然后调用resizeLayout()我的自定义视图.

我可以验证是否resizeLayout()已正确调用,但在旋转手机之前不会调整布局大小.显然,更改设备的方向会触发draw()我的自定义视图,但invalidate()我明确调用的也是如此.

其他布局更改,如更改背景颜色而不是调整大小工作正常.

我的自定义组件如下所示:

public class CustomComponent extends RelativeLayout {
    public CustomComponent(Context context) {
        super(context);
        init();
    }

    public CustomComponent(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public CustomComponent(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init();
    }

    private void init() {
        inflate(getContext(), R.layout.simple_layout, this);
    }

    public void resizeLayout(){
        LinearLayout childLayout = (LinearLayout) findViewById(R.id.child_layout);
        RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) childLayout.getLayoutParams();
        layoutParams.height = 50;
        layoutParams.width= 50;
        childLayout.setLayoutParams(layoutParams); …
Run Code Online (Sandbox Code Playgroud)

android react-native

7
推荐指数
1
解决办法
2382
查看次数

React Native:使用JWPlayer的原生Android UI组件不显示视频图像

我为Android编写了一个原生UI组件,它基本上由一个自定义视图(RelativeLayout)组成,后者又包含JWPlayer.组件以及播放器本身都在我的RN项目中正确呈现(尺寸,颜色等具有正确的值)但是当我开始播放时,我得到没有任何图像的声音.

然而,当我旋转手机时,我也得到视频图像,一切似乎都运行正常.我在Android项目中尝试了类似的东西invalidate(),requestLayout()但没有任何改变.我还尝试render()在RN组件中再次调用(通过更新其状态),其中包含本机组件但仍然没有运气.我创建了一个原生Android项目,其中包含与我编写的完全相同的自定义RelativeLayout的Activity,一切正常.所以问题似乎是在React Native项目的一边.

由于旋转手机后一切正常,必须有一些生命周期方法重新渲染/重新布局RN组件.

所以我的问题是:有这样的方法吗?

首先十分感谢.

PS.JWPlayer基于ExoPlayer.

javascript android jwplayer exoplayer react-native

3
推荐指数
1
解决办法
707
查看次数

标签 统计

android ×2

react-native ×2

exoplayer ×1

javascript ×1

jwplayer ×1