小编Sud*_*ara的帖子

在形状的波纹有透明背景

我在我的应用程序中使用以下形状

<?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 …

android rippledrawable

33
推荐指数
4
解决办法
2万
查看次数

"尝试确定电池电量时,不允许IntentReceiver组件注册接收意图"

我正在尝试按照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)

android intentfilter android-intent

20
推荐指数
1
解决办法
8401
查看次数

确定NavigationDrawer是打开还是关闭

有什么方法可以确定导航抽屉是打开还是关闭?我已阅读有关isDrawerOpen()isDrawerVisible()方法,但只有在导航抽屉打开或可见时,它们才会返回true.

我还读到onDrawerSlide(View drawerView, float slideOffset)了抽屉移动时调用的方法.这slideOffset是0到1之间的浮动值,告诉抽屉现在的位置.但即使在抽屉打开关闭时也会调用它.

我需要做的是,只有当抽屉打开而不是在关闭时才做某事,有些东西告诉我必须使用onDrawerSlide(View drawerView, float slideOffset)方法,但我无法弄清楚如何检查它是否打开而未关闭.

谢谢

android navigation-drawer

6
推荐指数
1
解决办法
2454
查看次数

聆听环境变化

如何检测 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 更改配色方案时,新配色方案不会传播。

我如何听取这个环境变量的变化?

swift swiftui

4
推荐指数
2
解决办法
1637
查看次数

'Publishers.Once'的替代方案是什么?

新的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)

swift combine

4
推荐指数
2
解决办法
320
查看次数

应用程序启动时要添加到主活动的第一个片段

假设我正在创建一个Android具有Navigation drawer和的的应用程序fragment。当用户单击中的选项时,将加载Navigation drawer相应的选项fragment。该应用程序只有一个activityMain activity),而没有view

首次启动应用程序时,哪个fragment加载到了main activity?如何application知道fragment在没有用户交互的情况下首先要加载的内容?如何将自定义设置为fragment在应用程序启动时自动加载?

谢谢

android slidingdrawer android-fragments

1
推荐指数
1
解决办法
4840
查看次数