我在我的应用程序中使用以下形状
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape android:shape="oval" >
<solid android:color="@color/primary_light"/>
<size android:height="80dp" android:width="80dp"/>
</shape>
</item>
<item android:state_focused="true">
<shape android:shape="oval">
<stroke android:color="@color/primary_light" android:width="5dp"/>
<size android:height="80dp" android:width="80dp"/>
</shape>
</item>
<item>
<shape android:shape="oval">
<solid android:color="@android:color/transparent"/>
<size android:height="80dp" android:width="80dp"/>
</shape>
</item>
</selector>
Run Code Online (Sandbox Code Playgroud)
它在我的drawable文件夹中.现在我正在将我的应用更新到Lollipop,我希望对我使用的圆形按钮给出反馈.所以在drawable-v21文件夹中我把它改成了一个涟漪选择器:
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/primary_light">
<item>
<selector>
<item android:state_focused="true">
<shape android:shape="oval">
<stroke android:color="@color/primary_light" android:width="5dp"/>
<size android:height="80dp" android:width="80dp"/>
</shape>
</item>
<item android:id="@android:id/mask">
<shape android:shape="oval">
<solid android:color="@android:color/transparent"/>
<size android:height="80dp" android:width="80dp"/>
</shape>
</item>
</selector>
</item>
</ripple>
Run Code Online (Sandbox Code Playgroud)
但不幸的是,在Lollipop中使用上述drawable并不会产生连锁反应.是因为<solid …
我正在尝试按照http://developer.android.com/training/monitoring-device-state/battery-monitoring.html上的指南从我的应用程序获取电池信息
这是检查电池电量的方法:
public void sendBatteryInfoMessage(){
IntentFilter iFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent batteryStatus = c.registerReceiver(null, iFilter);
int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING || status == BatteryManager.BATTERY_STATUS_FULL;
int chargePlug = batteryStatus.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
boolean isUsbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB;
boolean isAcCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_AC;
int batteryLevel = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
float batteryPct = batteryLevel / (float) scale;
}
Run Code Online (Sandbox Code Playgroud)
cContext在类的早期初始化为对象.
这是我收到的错误消息
07-24 18:11:23.445 634-634/wifi.myapp.sudara.lk.sudara_app W/dalvikvm? threadid=1: thread exiting with uncaught …Run Code Online (Sandbox Code Playgroud) 有什么方法可以确定导航抽屉是打开还是关闭?我已阅读有关isDrawerOpen()和isDrawerVisible()方法,但只有在导航抽屉打开或可见时,它们才会返回true.
我还读到onDrawerSlide(View drawerView, float slideOffset)了抽屉移动时调用的方法.这slideOffset是0到1之间的浮动值,告诉抽屉现在的位置.但即使在抽屉打开和关闭时也会调用它.
我需要做的是,只有当抽屉打开而不是在关闭时才做某事,有些东西告诉我必须使用onDrawerSlide(View drawerView, float slideOffset)方法,但我无法弄清楚如何检查它是否打开而未关闭.
谢谢
如何检测 SwiftUI 中的环境变化?例如,我将当前的配色方案存储为
@Environment(\.colorScheme) var colorScheme: ColorScheme
Run Code Online (Sandbox Code Playgroud)
我ASAuthorizationAppleIDButton根据环境值显示一个:
fileprivate struct AppleSignInView : UIViewRepresentable {
var colorScheme: ColorScheme
func makeUIView(context: Context) -> ASAuthorizationAppleIDButton {
switch colorScheme {
case .light:
return ASAuthorizationAppleIDButton(type: .continue, style: .black)
case .dark:
return ASAuthorizationAppleIDButton(type: .continue, style: .white)
@unknown default:
return ASAuthorizationAppleIDButton(type: .continue, style: .black)
}
}
func updateUIView(_ uiView: ASAuthorizationAppleIDButton, context: Context) { }
}
Run Code Online (Sandbox Code Playgroud)
在我的body财产中,我实例化了结构:
var body: some View {
AppleSignInView(colorScheme: colorScheme)
}
Run Code Online (Sandbox Code Playgroud)
这工作正常,但是当我从 Xcode 更改配色方案时,新配色方案不会传播。
我如何听取这个环境变量的变化?
新的Xcode 11 beta 4已从Publishers.OnceCombine框架中删除了struct。有什么选择?
Just似乎是可能的候选者,但是,它不能用于返回类型为isAnyPublisher<Bool, Error>的关联Failure类型的方法中的返回发布者。Just Never
例如,在以下方法中,Publishers.Once由于关联的Failure类型不是,所以我可以返回一个Never。
func startSignIn() -> AnyPublisher<Void, Error> {
if authentication.provider == .apple {
let request = ASAuthorizationAppleIDProvider().createRequest()
request.requestedScopes = [.email, .fullName]
let controller = ASAuthorizationController(authorizationRequests: [request])
controller.delegate = self
controller.performRequests()
return Publishers.Once(()).eraseToAnyPublisher()
} else {
return SignInManager.service.startSignIn(auth: authentication)
.map { (auth) -> Void in
self.authentication = auth
}.eraseToAnyPublisher()
}
}
Run Code Online (Sandbox Code Playgroud)
但是现在,当我将其更改回时,Just我收到一个编译错误,抱怨说Just无法返回,因为该方法应返回具有关联Failure类型的发布者。
func …Run Code Online (Sandbox Code Playgroud) 假设我正在创建一个Android具有Navigation drawer和的的应用程序fragment。当用户单击中的选项时,将加载Navigation drawer相应的选项fragment。该应用程序只有一个activity(Main activity),而没有view。
首次启动应用程序时,哪个fragment加载到了main activity?如何application知道fragment在没有用户交互的情况下首先要加载的内容?如何将自定义设置为fragment在应用程序启动时自动加载?
谢谢