2017-07-05 6 views
0

Wenn reagieren native erfordern diese native ui-Komponente mehrere Zeit, beginnend mit dem zweiten, der vorherige wurde schwarz.Reactive Native UI-Komponente

Irgendwelche Ideen?

@Override 
public String getName() 
{ 
    return "JWPlayer"; 
} 


@Override 
public JWPlayerView createViewInstance(ThemedReactContext context) 
{ 
    PlayerConfig playerConfig = new PlayerConfig.Builder().build(); 

    playerView = new JWPlayerView(context.getCurrentActivity(), playerConfig); 
    playerView.setFullscreen(false, false); 
    playerView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); 

    playerView.addOnFullscreenListener(this); 
    playerView.addOnPauseListener(this); 
    playerView.addOnPlayListener(this); 
    playerView.addOnSetupErrorListener(this); 
    playerView.addOnErrorListener(this); 



    return playerView; 
} 

Antwort

0

Ich habe auch diese Frage gestellt. Ich löste das Problem.

siehe same question,

this

JWView.java:

import android.app.Activity; 
import android.content.Context; 
import android.os.Handler; 
import android.os.Message; 
import android.util.DisplayMetrics; 
import android.util.Log; 
import android.view.SurfaceView; 
import android.view.View; 
import android.view.WindowManager; 
import android.widget.FrameLayout; 


import com.facebook.react.bridge.Arguments; 
import com.facebook.react.bridge.ReactContext; 
import com.facebook.react.bridge.UiThreadUtil; 
import com.facebook.react.bridge.WritableMap; 

import com.longtailvideo.jwplayer.JWPlayerView; 
import com.longtailvideo.jwplayer.configuration.PlayerConfig; 

public class JWView extends FrameLayout { 


    private final Context _context; 
    private Activity activity = null; 

    public JWView(Context context) { 
     super(context); 
     this._context = context; 
     this.activity = ((ReactContext) getContext()).getCurrentActivity(); 

     PlayerConfig playerConfig = new PlayerConfig.Builder() 
       .file("http://img.ksbbs.com/asset/Mon_1605/25d705200a4eab4.mp4") 
       .autostart(false) 
       .build(); 

     JWPlayerView playerView = new JWPlayerView(this.activity, playerConfig); 


     addView(playerView); 
    } 

    private final Runnable measureAndLayout = new Runnable() { 
     @Override 
     public void run() { 
      measure(
        MeasureSpec.makeMeasureSpec(getWidth(), MeasureSpec.EXACTLY), 
        MeasureSpec.makeMeasureSpec(getHeight(), MeasureSpec.EXACTLY)); 
      layout(getLeft(), getTop(), getRight(), getBottom()); 
     } 
    }; 

    @Override 
    public void requestLayout() { 
     super.requestLayout(); 

     // The spinner relies on a measure + layout pass happening after it calls requestLayout(). 
     // Without this, the widget never actually changes the selection and doesn't call the 
     // appropriate listeners. Since we override onLayout in our ViewGroups, a layout pass never 
     // happens after a call to requestLayout, so we simulate one here. 
     post(measureAndLayout); 
    } 

} 

JWPlayerViewManager.java:

import java.util.List; 
import java.util.ArrayList; 

import android.app.Activity; 
import com.facebook.react.uimanager.SimpleViewManager; 
import com.facebook.react.uimanager.ThemedReactContext; 


import com.longtailvideo.jwplayer.JWPlayerView; 
import com.longtailvideo.jwplayer.configuration.PlayerConfig; 


public class JWPlayerViewManager extends SimpleViewManager<JWView> 
{ 


    @Override 
    public String getName() 
    { 
     return "Jwplayer"; 
    } 

    @Override 
    public JWView createViewInstance(ThemedReactContext context) 
    { 
     return new JWView(context); 
    } 
} 
+0

Ist das eine Antwort? Auch ich bin von dem Paketnamen unbeeindruckt - völlig unberechtigt –