View: relayout on visibility changes

This commit is contained in:
Julian Winkler
2023-11-08 18:11:52 +01:00
parent ac5a547360
commit 6ef1e523cc
3 changed files with 11 additions and 7 deletions

View File

@@ -297,11 +297,11 @@ JNIEXPORT void JNICALL Java_android_view_View_setBackgroundColor
/* /*
* Class: android_view_View * Class: android_view_View
* Method: setVisibility * Method: native_setVisibility
* Signature: (I)V * Signature: (JI)V
*/ */
JNIEXPORT void JNICALL Java_android_view_View_setVisibility JNIEXPORT void JNICALL Java_android_view_View_native_1setVisibility
(JNIEnv *, jobject, jint); (JNIEnv *, jobject, jlong, jint);
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@@ -239,8 +239,8 @@ JNIEXPORT void JNICALL Java_android_view_View_native_1setLayoutParams(JNIEnv *en
android_layout_set_params(ATL_ANDROID_LAYOUT(layout_manager), width, height); android_layout_set_params(ATL_ANDROID_LAYOUT(layout_manager), width, height);
} }
JNIEXPORT void JNICALL Java_android_view_View_setVisibility(JNIEnv *env, jobject this, jint visibility) { JNIEXPORT void JNICALL Java_android_view_View_native_1setVisibility(JNIEnv *env, jobject this, jlong widget_ptr, jint visibility) {
GtkWidget *widget = gtk_widget_get_parent(GTK_WIDGET(_PTR(_GET_LONG_FIELD(this, "widget")))); GtkWidget *widget = gtk_widget_get_parent(GTK_WIDGET(_PTR(widget_ptr)));
switch (visibility) { switch (visibility) {
case android_view_View_VISIBLE: case android_view_View_VISIBLE:

View File

@@ -984,7 +984,11 @@ public class View extends Object {
private static native void nativeInvalidate(long widget); private static native void nativeInvalidate(long widget);
public native void setBackgroundColor(int color); public native void setBackgroundColor(int color);
public native void setVisibility(int visibility); public native void native_setVisibility(long widget, int visibility);
public void setVisibility(int visibility) {
native_setVisibility(widget, visibility);
requestLayout();
}
public void setPadding(int left, int top, int right, int bottom) {} public void setPadding(int left, int top, int right, int bottom) {}
public void setBackgroundResource(int resid) { public void setBackgroundResource(int resid) {
// Slog.w(TAG, "*** setBackgroundResource: " + getString(resid)); // Slog.w(TAG, "*** setBackgroundResource: " + getString(resid));