我尝试实施issue 111316656的项目#11中提出的建议:
您还应该能够使用反射来访问支持fab的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
被引发。有什么问题吗?
答案 0 :(得分:0)
在这里尝试
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;
}
答案 1 :(得分:0)
在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();
}
}
});