Reputation: 41
Can I create a LinearLayout (for example) with native android code and display it on a CN1 interface ?
I have a method that implements native android code to create this view. if the method returns an EditText or Button for example, all works fine. but if it returns a LinearLayout, nothing happens and I have no error message.
signature of the method that calls on the native code:
public interface NativeCall extends NativeInterface {
public PeerComponent getMainView();
}
native implementation code that works well:
public class NativeCallImpl {
public android.view.View getMainView() {
Button b0 = new Button(((Context) MyApplication.getContext()));
return b0;
}
public boolean isSupported() {
return true;
}
}
native code implementation which does not work:
public class NativeCallImpl {
public android.view.View getMainView() {
Button b0 = new Button(((Context) MyApplication.getContext()));
Button b1 = new Button(((Context) MyApplication.getContext()));
b0.setText("b0");
b1.setText("b1");
LinearLayout linearLayout = new LinearLayout(((Context) MyApplication.getContext()));
linearLayout.setOrientation(LinearLayout.VERTICAL);
linearLayout.addView(b0);
linearLayout.addView(b1);
return linearLayout;
}
public boolean isSupported() {
return true;
}
}
Upvotes: 3
Views: 46
Reputation: 52760
Yes. Linear layout should work. Try adding the UI into the center of a form with a border layout. This will neutralize the impact of scrolling/preferred size calculations etc.
Android layout calculation is a bit over complicated so their size measuring code doesn't work well for layouts in the first try. For a button it will work well, but for a layout... Not so much.
Upvotes: 2