小编nba*_*man的帖子

Jetpack Compose:制作全屏(绝对定位)组件

我怎样才能在全屏渲染树的深处制作一个可组合项,类似于Dialog可组合项的工作原理?

例如,当用户单击图像时,它会显示该图像的全屏预览,而无需更改当前路线。

我可以在 CSS 中使用position: absoluteor来完成此操作position: fixed,但如何在 Jetpack Compose 中执行此操作?有可能吗?

一种解决方案是在树的顶部有一个可组合项,可以将另一个可组合项作为参数从树中的其他位置传递,但这听起来有点混乱。当然有更好的方法。

android kotlin android-jetpack android-jetpack-compose

22
推荐指数
3
解决办法
3万
查看次数

Jetpack Compose:从 Composable 函数启动 ActivityResultContract 请求

从 的1.2.0-beta01开始androidx.activity:activity-ktx,不能再launch使用创建的请求Activity.registerForActivityResult(),如上面“行为更改”下的链接中突出显示的那样,并在此处Google 问题中看到

应用程序@Composable现在应该如何通过函数启动这个请求?以前,应用程序可以MainActivity通过使用 向下传递链的实例,Ambient然后轻松启动请求。

例如,可以通过以下方式解决新行为:在 Activity 的onCreate函数之外实例化后,将注册活动结果的类传递到链中,然后在Composable. 但是,无法通过这种方式注册完成后要执行的回调。

可以通过创建 custom 来解决这个问题ActivityResultContract,它在启动时接受回调。但是,这意味着几乎没有任何内置功能ActivityResultContracts可以与 Jetpack Compose 一起使用。

TL; 博士

应用程序如何ActivityResultsContract@Composable函数发起请求?

android android-jetpack android-jetpack-compose registerforactivityresult

10
推荐指数
5
解决办法
3421
查看次数

使用 TypeScript 和 NPM 链接创建 React App:枚举导致模块解析失败

我有一个基本的create-react-appTypeScript 项目 ( client)。只是目录,我有一个server和一个shared文件夹。在shared文件夹内,我有许多在和之间共享的interfaces 和s 。enumserverclient

我希望将此shared文件夹链接到clientserver包。

首先,我转到shared并运行$ yarn link,然后$ yarn link sharedclientserver文件夹中运行。

服务器非常高兴,而且大多数情况下客户端也是如此。但是,一旦我使用中目录中enum的其中一个,就会收到错误:sharedclient

../shared/src/models/Roles.ts 4:0
Module parse failed: The keyword 'enum' is reserved (4:0)
File was processed with these loaders:
 * ./node_modules/@pmmmwh/react-refresh-webpack-plugin/loader/index.js
You may need an additional loader to handle the result of these loaders. …
Run Code Online (Sandbox Code Playgroud)

typescript reactjs webpack npm-link babel-loader

9
推荐指数
2
解决办法
6458
查看次数

Jetpack Compose State:修改类属性

下面的两个示例简单地将“a”添加到给定的默认值。该compose_version使用的1.0.0-alpha03是最新的截至今天(据我所知)。

这个例子与我在研究过程中发现的大多数例子最相似。

示例 1

@Composable
fun MyScreen() {
    val (name, setName) = remember { mutableStateOf("Ma") }

    Column {
        Text(text = name) // 'Ma'
        Button(onClick = {
                setName(name + "a") // change it to 'Maa'
        }) {
            Text(text = "Add an 'a'")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然而,这并不总是实用的。例如,数据比单个字段更复杂。例如一个类,甚至一个Room data class.

示例 2

// the class to be modified
class MyThing(var name: String = "Ma");


@Composable
fun MyScreen() {
    val (myThing, setMyThing) = remember { mutableStateOf(MyThing()) }

    Column …
Run Code Online (Sandbox Code Playgroud)

android state kotlin android-jetpack android-jetpack-compose

8
推荐指数
2
解决办法
1746
查看次数

使用Scala Iterator使用RegEx匹配将大型流(从字符串)分解成多个块,然后对这些块进行操作?

我目前正在使用一种不太像scala的方法来解析大型Unix邮箱文件。我仍在学习该语言,并想挑战自己以寻求更好的方法,但是,我不相信我对使用an可以做什么Iterator以及如何有效使用它有扎实的了解。

我目前正在使用 org.apache.james.mime4j,并且使用org.apache.james.mime4j.mboxiterator.MboxIteratorjava.util.Iterator从文件中获取,因此:

 // registers an implementation of a ContentHandler that
 // allows me to construct an object representing an email
 // using callbacks
 val handler: ContentHandler = new MyHandler();

 // creates a parser that parses a SINGLE email from a given InputStream
 val parser: MimeStreamParser = new MimeStreamParser(configBuilder.build());
 // register my handler
 parser.setContentHandler(handler);

 // Get a java.util.Iterator
 val iterator = MboxIterator.fromFile(fileName).build();
 // For each email, process it using above Handler
 iterator.forEach(p => …
Run Code Online (Sandbox Code Playgroud)

regex iterator scala stream chunking

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

Jetpack Compose:自定义 TextField 设计

一般来说,Jetpack Compose 中的大多数组件似乎都非常容易定制。

但是,对于TextField. 例如,假设我想做这样的事情:

自定义文本输入

人们会认为简单地包装BaseTextField会起作用。不过貌似BaseTextField组件有bug ,我开了个issue。在重新渲染组件之前,此错误将不允许用户在焦点远离文本字段后聚焦文本字段。

引用这一点,我尝试自定义OutlinedTextFieldTextField组件,但无法自定义它们以看起来像上图。如果不是因为光标颜色使用了该activeColor属性,我可以让它工作。

创建一个类似上面的可用文本字段的正确解决方法是什么?

android android-textinputlayout android-jetpack android-jetpack-compose

7
推荐指数
3
解决办法
4472
查看次数

Swift:在 iOS 设备上收听物理按钮向上/向下事件

我想在用户按下任一音量按钮时执行一个操作,并在他们停止按下时执行另一个操作,类似于我可以通过覆盖touchesBegan()touchesEnded.

我知道我可以在更改时列出音量级别,如下所示:

  NotificationCenter.default.addObserver(self, selector: #selector(volumeChanged), name: NSNotification.Name(rawValue: "AVSystemController_SystemVolumeDidChangeNotification"), object: nil)

  @objc func volumeChanged(notification: NSNotification) {
       if let userInfo = notification.userInfo {
          if let volumeChangeType = userInfo["AVSystemController_AudioVolumeChangeReasonNotificationParameter"] as? String {  
              // do something here, such as a switch based off of "volumeChangeType"
          }
      }
  }
Run Code Online (Sandbox Code Playgroud)

但是,一旦用户完全调高或调低音量,就不再触发事件。此外,当用户停止按下按钮时不会触发任何事件。这是有道理的,因为我实际上是在听音量变化事件,而不是音量按钮按下事件。

有没有办法在 iOS 中收听物理按钮按下?

xcode uikit ios swift

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

Jetpack Compose:类似于内置`Icons.Default` 的自定义 VectorAsset 图标对象

看起来从res文件夹中的 Android Vector Resources 加载自定义图标的唯一方法是@Composable使用该vectorResource(R.drawable.myVectorName)方法在函数中执行此操作。

这是伟大的,但是我喜欢取的语法VectorAssetsIcon(asset: VectorAsset)类,它看起来像Icon(Icons.Default.Plus)

看起来该vectorResource()方法使用了一个名为的内部方法loadVectorResource(),它用来读取构成矢量资产文件的实际 XML 文件的方法也是内部方法。

我将如何像MyAppIcons.Default.SomeIcon在 Jetpack Compose 中那样创建一个对象?

编辑

所以,我已经找到了一个解决方案。但是,对内置Icon()函数进行我自己的扩展/重载会很好,但我不确定是否有适当的方法来做到这一点。

android kotlin kotlin-android-extensions android-vectordrawable android-jetpack-compose

6
推荐指数
2
解决办法
2349
查看次数

如何使用.AddJwtBearer()在.NET Core Web API中验证AWS Cognito JWT

我在弄清楚如何验证.NET Core Web API中由AWS Cognito提供给客户端的JWT时遇到了一些麻烦。

我不仅无法弄清楚Microsoft.IdentityModel.Tokens.TokenValidationParameters应该使用的变量是什么,而且一旦我终于知道了,我不知道如何从中检索JWT密钥集。https://cognito-idp.{region}.amazonaws.com/{pool ID}/.well-known/jwks.json

最后,尽管经过了很多随机的Google搜索和反复试验,我还是找到了一个(看似不是很有效的解决方案)解决方案。但是,我花了太多时间来做。出于这一点,再加上严重缺乏有关该主题的AWS文档这一事实,我决定发布此问答,以帮助其他人将来更轻松地找到此解决方案。

如果有更好的方法,告诉我,因为除了下面列出的答案外,我还没有找到其他方法。

jwt amazon-cognito .net-core jwk asp.net-core-webapi

4
推荐指数
3
解决办法
1816
查看次数

Jetpack Compose:使用 TextField 修改 Room 数据类

data class使用 es修改简单值EditText相当简单,通常如下所示:

data class Person(var firstName: String, var lastName: Int)

// ...

val (person, setPerson) = remember { mutableStateOf(Person()) }

// common `onChange` function handles both class properties, ensuring maximum code re-use
fun <T> onChange(field: KMutableProperty1<Person, T>, value: T) {
    val nextPerson = person.copy()
    field.set(nextPerson, value)
    setPerson(nextPerson)
}

// text field for first name
TextField(
    value = person.firstName,
    onChange = { it -> onChange(Person::firstName, it) })

// text field for last name name
TextField(
    value = …
Run Code Online (Sandbox Code Playgroud)

android state kotlin android-jetpack android-jetpack-compose

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

.NET Core Web API和React的Active Directory身份验证

我不知道我是否不在正确的地方,但是我似乎找不到正确的指南来开始使用React / .NET Core 2.1 Web API和(本地)Active Directory身份验证。

一般来说,我对.NET身份认证比较陌生,而对Active Directory身份认证则完全陌生。

我首先使用.NET Core 2.1 React模板并尝试向其添加auth,但是完全迷失了。

我什至从哪里开始?

authentication ldap active-directory reactjs .net-core

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

FS2:如何从 fs2.Stream 获取 java.io.InputStream?

例如,假设我已经val fs2Stream: Stream[IO, Byte]并且需要调用一些需要java.io.InputStream.

我想我对 FS2 还太陌生,但我似乎找不到答案。我尝试使用fs2.io.toInputStreamandfs2.io.readInputStream但我不知道如何提供一些所需的参数。我已经在万能的 Google 上搜索了答案,但自从大多数人上次寻找答案以来,API 似乎已经发生了变化。

我该如何去做类似以下的事情?

def myFunc(data: fs2.Stream[IO, Byte]): InputStream[Byte] = someMagicalFunction(data)
Run Code Online (Sandbox Code Playgroud)

scala stream http4s fs2

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