小编Joh*_*aul的帖子

在Play2中将Scala列表序列化为JSON

我试图将Scala对象列表反序列化为Play2中的JSON映射 - 这是一个非常简单的JSON用例,我想说.我的JSON输出将是:

{
    "users": [
        {
            "name": "Example 1",
            "age": 20
        },
        {
            "name": "Example 2",
            "age": 42
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

为实现这一目标,我正在研究名为"Play JSON库"的Play2 JSON文档.对他来说,他们的例子非常简单,我已经证实他们适合我.因此,我能够User正确地反序列化单个对象.

但是,当我阅读文档时,在Play2中制作包含JSON列表的地图似乎有点冗长.有没有我不喜欢的东西?

这基本上是我简单的Scala代码:

case class User(name: String, age: Int)

object UserList {
  implicit val userFormat = Json.format[User]  

  val userList = List(User("Example 1", 20), User("Example 2", 42))
  val oneUser = Json.toJson(userList(0)) // Deserialize one Scala object properly to JSON.
  // JSON: { "user" : [ <-- put content of userList here. How?
  // …
Run Code Online (Sandbox Code Playgroud)

json scala playframework playframework-2.0

16
推荐指数
1
解决办法
2万
查看次数

如何检测Azure Powershell会话是否已过期?

我正在编写Azure PowerShell脚本并登录到Azure I调用Add-AzureAccount,它将弹出浏览器登录窗口.

我想知道什么是检查身份验证凭据是否已过期的最佳方法,因此我是否应该Add-AzureAccount再次呼叫?

我现在所做的是,我只是打电话Get-AzureVM,看看是否$?等于$False.对我来说听起来有些讨厌,但似乎有效.如果订阅没有部署任何虚拟机,它仍然可以工作吗?

authentication powershell azure

16
推荐指数
4
解决办法
1万
查看次数

如何在 Jetpack Compose 中为 LinearProgressIndicator 的进度设置动画?

我有一个LinearProgressIndicator可以正确显示当前进度的。现在我希望进度是动画的,我认为这会非常简单animateFloatAsState。好吧,不确定我没有理解什么,但是使用下面的代码,进度不是动画的,而是立即显示在正确的位置。

@Composable
fun MyIndicator() {
    val progressAnimDuration = 1500
    val progressAnimation by animateFloatAsState(
        targetValue = 0.35f
        animationSpec = tween(durationMillis = progressAnimDuration, easing = FastOutSlowInEasing)
    )
     LinearProgressIndicator(
        progress = progressAnimation,
        ...
        modifier = Modifier           
           .fillMaxWidth()
           .clip(RoundedCornerShape(20.dp)). // Rounded edges
    )
}
Run Code Online (Sandbox Code Playgroud)

因此,每当我在屏幕上显示该组件时,我都希望进度能够动画化到正确的进度状态。但相反,进度不是动画的,而是立即以正确的进度状态显示。

这是怎么回事?:)

android android-jetpack-compose

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

在 Jetpack Compose 中考虑项目的高度来偏移项目

我想垂直放置我自己的组件(例如文本组件),以便可以指定相对于文本组件底部的 y 偏移。我怎样才能在 Jetpack compose 中做到这一点?

所以像

Column {
    Text("Something", modifier = Modifier.offset(y=10.dp))
}
Run Code Online (Sandbox Code Playgroud)

但 10dp 不是代表文本组件的顶部 y 位置,而是底部 y 位置。即使文本大小发生变化,基本上也会考虑文本的高度。所以y = offset.y - height

据我所知,有两个问题:

  1. 字体大小可以更改,因此我无法对文本高度进行硬编码。
  2. 我需要知道合成过程中文本组件的大小,但我不知道如何获取它。

android android-jetpack-compose

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

在 Jetpack Compose 中通过字体的上升而不是基线对齐两个文本

我知道如何将 Jetpack Compose 中的文本与基线对齐。

但现在我需要对齐两个不同大小的文本,这些文本Row通过这两种字体中较大的字体的上升来对齐。如果有意义的话,我想将此视为“按顶部基线”对齐两个文本。 Modifier.align(Alignment.Top)不起作用,因为它不会通过上升对齐,而是通过布局的顶部对齐,然后文本在顶部无法正确对齐。

我试图看看如何做到这一点,但显然没有现成的函数或修饰符?我什至没有找到在 Compose 中访问 Text 的 ascent 属性等的方法。所以不确定这怎么可能?

感谢您的任何提示!:)

编辑:这就是使用时的样子Alignment.Top。但我希望这两个文本在顶部对齐。

在此输入图像描述

android android-jetpack-compose android-jetpack-compose-text

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

应用程序暂停时,对AudioPlayerAgent中的UserAction做出反应

我有一个BackgroundAudioPlayer与之配合使用的音频播放器AudioPlayerAgent.一切都运行正常,除了有一个用例,我不知道如何处理.

如果我在我的应用程序中播放音频轨道然后用户切换到另一个应用程序,音频轨道将继续在后台播放 - 但我想我的应用程序现在已经被交换到内存并被暂停.

我的问题是:如果用户现在开始在另一个应用程序中播放音乐,我会将AudioPlayerAgent.UserAction.Stop操作作为对我的回调AudioAgent.但是,从我的应用程序的角度来看,我现在可以对此做些什么吗?我的意思是,我想保存用户在我的应用程序中的音频播放位置,但我的应用程序已被暂停,对吧?

当我的应用程序在前台并且音频停止时,我确实得到了该BackgroundAudioPlayer.Instance.PlayerState.Stopped事件.在这里,我通常保存播放的位置.但如果用户切换到另一个应用程序播放音乐,我不会得到这个事件.

所以我只是想知道如何处理这种情况.我有什么办法可以改善用户体验吗?

windows-phone-7 windows-phone-7.1 background-audio windows-phone-8

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

Jetpack Compose:如果文本不合适,请使用不同的布局?

假设我有一个固定大小的矩形,里面有一些文本。由于用户可以从设备上的系统 - 辅助功能设置中更改字体大小,因此字体可能不适合固定大小的矩形。如果发生这种情况,我们希望将文本渲染在矩形之外。

据我所知,我应该以某种方式测量文本的宽度(例如),看看它是否适合矩形,如果不适合,则以不同的方式布局组件。

我该如何在 Jetpack Compose 中执行此操作?

因此,使用这个伪代码,如果text不适合在里面,Box我想在它下面放置文本,从而引入一个Column等。

@Composable
fun myView() {
  val text = Text("Some text")
  Box(modifier = Modifier.size(40.dp)) {
      text
  }
}
Run Code Online (Sandbox Code Playgroud)

android android-jetpack-compose android-jetpack-compose-text

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

使用"isostore:/"方案从XAML中的隔离存储访问映像

我已经从网上下载了图像并将它们保存到了隔离存储中,现在我想在我的XAML文件中访问这些图像,并将Uri作为对它们的引用.

我已经使用IsoStoreSpy验证了它们存储在我期望它们的正确位置,如果我打开文件并读入字节流,我可以从它们创建BitmapImages.但是现在我想通过将Uri从我的模型传递到IsolatedStorage位置并让我的XAML加载图像来优化我的图像处理.

<Image Height="120" Width="120" Stretch="Uniform" HorizontalAlignment="Left">
   <Image.Source>
     <BitmapImage UriSource="{Binding PodcastLogoUri}" DecodePixelHeight="120" DecodePixelWidth="120" /> 
   </Image.Source>
</Image>
Run Code Online (Sandbox Code Playgroud)

这是PodcastLogoUri绑定到BitmapImage.UriSource 的Uri值:

"isostore:/PodcastIcons/258393889fa6a0a0db7034c30a8d1c3322df55696137611554288265.jpg"

这是我构建它的方式:

public Uri PodcastLogoUri
{
    get
    {

        Uri uri = new Uri(@"isostore:/" + PodcastLogoLocation);
        return uri;
    }
}
Run Code Online (Sandbox Code Playgroud)

不过,我在UI中看不到图像.我相信图像是在PodcastLogoLocation.

是否可以从Windows Phone 8中的隔离存储中将图像引用到UI?我究竟做错了什么?

编辑:如果我使用相同的路径直接创建BitmapImage并使用XAML中的BitmapImage,它工作正常,我可以看到我期望在那里看到的图像:

<Image Height="120" Source="{Binding PodcastLogo}"  Width="120" Stretch="Uniform" HorizontalAlignment="Left"/>
Run Code Online (Sandbox Code Playgroud)
 public BitmapImage PodcastLogo
 {
     get
     {
          Stream stream = null;
          BitmapImage logo = new BitmapImage();
          using (var isoStore = IsolatedStorageFile.GetUserStoreForApplication())
          {
              if (isoStore.FileExists(PodcastLogoLocation))
              {
                 stream = …
Run Code Online (Sandbox Code Playgroud)

c# xaml isolatedstorage windows-phone-8

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

MotionLayout &lt;KeyPosition&gt; 找不到属性“目标”

我正在使用 ConstraintLayout 2.0 来做一些 MotionLayout 动画。我从更新了我的ConstraintLayout 2.0alpha-3beta-3现在编制,它的投诉时

src/main/res/xml/scene.xml:11: AAPT: 错误: 属性目标(又名 com.myapp:target)未找到。

我没有更改 MotionLayout 场景文件中的任何内容。以下是违规部分:

  <MotionScene
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:motion="http://schemas.android.com/apk/res-auto"> 
...
     <Transition
        motion:constraintSetStart="@+id/start"
        motion:constraintSetEnd="@+id/end"
        motion:duration="1000">

        <KeyFrameSet>
            <KeyPosition
                motion:target="@+id/accent_background" <<-- Here
                motion:framePosition="80"
                motion:percentX="1"
                motion:percentY="1" />
Run Code Online (Sandbox Code Playgroud)

我查看了 MotionLayout 的文档,对我来说这并没有改变,但目标仍然是这样定义的。或者我错过了什么?

我确实清除了缓存并尝试重建,但没有帮助。

android android-constraintlayout android-motionlayout

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

在 Jetpack Compose 中的三个组件状态之间设置动画

我熟悉TransitionJetpack Compose 中的 API,它让我可以轻松地在 Compose 组件内的两种状态之间设置动画。

但是在三种不同状态之间设置动画的最佳方式是什么?

以组件的加载指示器为例。状态可以是NotLoadingLoadingHasLoaded。我的想法是为组件提供一个加载指示器并在这些状态之间进行转换:

  • 显示加载指示器的过渡:NotLoading -> Loading
  • 显示数据的转换:Loading -> HasLoaded

我想什么样的过渡并不重要,但我想首先淡入加载指示器,然后淡出加载指示器并淡入内容。但这只是一个例子;实际上我需要指定转换参数。

使用 Jetpack Compose 实现这一目标的最佳方法是什么?不确定我在这里的想法是否是最好的方法。

android android-jetpack-compose jetpack-compose-animation

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