我尝试执行issue 111316656的第11项中提出的建议,即:
您还应该能够使用反射来访问支持
的FloatingActionButtonImpl,然后在该实例上调用setImageMatrixScale(1)。
使用以下代码:
FloatingActionButton fab;
...
Method method = null;
try {
method = fab.getClass().getMethod("setImageMatrixScale", null);
method.invoke(fab, 1);
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
但是NoSuchMethodException
被提升了。有什么问题吗?
发布于 2018-12-17 17:12:48
在Mike M.的帮助下(请参阅问题中的注释),这是参考问题中包含的解决方法的JAVA版本:
fab.show(new FloatingActionButton.OnVisibilityChangedListener() {
@Override
public void onShown(FloatingActionButton fab) {
try {
Field implField = FloatingActionButton.class.getDeclaredField("impl");
implField.setAccessible(true);
Object impl = implField.get(fab);
Class cls;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
cls = impl.getClass().getSuperclass();
} else {
cls = impl.getClass();
}
Method mthd = cls.getDeclaredMethod("setImageMatrixScale", Float.TYPE);
mthd.setAccessible(true);
mthd.invoke(impl, 1);
} catch (Exception e) {
e.printStackTrace();
}
}
});
发布于 2018-12-13 04:20:54
像这样试试吧
BluetoothGatt localBluetoothGatt = gatt;
java.lang.reflect.Method localMethod = localBluetoothGatt.getClass().getMethod("refresh", new Class[0]);
if (localMethod != null) {
boolean bool = ((Boolean) localMethod.invoke(localBluetoothGatt, new Object[0])).booleanValue();
return bool;
}
https://stackoverflow.com/questions/53750074
复制相似问题