小编Mor*_*itz的帖子

如何在未登录时导航用户登录页面

我有关于angulardart和登录流程的结构问题.我有一个服务,它与服务器进行通信,并具有login(),logout(),loggedIn()等方法.这一切都在角度很好地工作,但我正在寻找一种最佳实践方式将登录流程合并到我的应用程序中.

该应用程序要求用户登录.因此,当用户未登录时,我是否会在启动时重新路由到自定义"登录"视图?我还没有登录时切换主index.html的部分内容吗?我会创建一个处理登录的自定义组件吗?

对于这种情况,是否存在共同的角度模式?

dart angular-dart

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

在达到timout之前关闭HttpClient连接

我目前正在使用HTTPClient 4向远程服务器发出POST请求,如下所示:

  HttpResponse response = httpClient.execute( request );
  InputStream is = response.getEntity().getContent();
Run Code Online (Sandbox Code Playgroud)

当服务器无法访问时,在连接实际超时之前需要一段自我配置的时间.在那个periode期间,execute()是一个阻塞调用.

我正在寻找的是一种在自然超时之前取消execute()的方法,这样我运行execute()的线程就不再被阻塞,并且会正常完成.

我试过了

request.abort();
Run Code Online (Sandbox Code Playgroud)

httpClient.getConnectionManager().shutdown();
Run Code Online (Sandbox Code Playgroud)

但是这两个调用都不会中断execute().有没有其他方法可以取消正在进行的连接尝试?

java httpclient

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

如何创建需要找到目标文档的 firestore 事务

我正在寻找一种创建 firestore 事务的方法,我从查询中找到一个文档,然后在事务中修改该文档。

沿着这些路线的东西(kotlin):

firestore.runTransaction { transaction ->

  val snapshot = transaction.get(db.collection("document")
      .whereEqualTo("someField", null)
      .orderBy("creationDate", ASCENDING)
      .limit(1L))

  val myObject = snapshot.toObject(MyObject::class.java)
  myObject.someFiled = "123"
  transaction.set(snapshot.reference, myObject)
}
Run Code Online (Sandbox Code Playgroud)

这里的问题是该.limit(1)方法返回的查询不是 DocumentReference,这是事务接受的唯一类型。因此我的问题是,如何在 java/kotlin 中实现这样的事务?

我在这篇使用 admin sdk 的博客文章中看到了类似的内容:

  return trs.get(db.collection('rooms')
    .where('full', '==', false)
    .where('size', '==', size)
    .limit(1));
Run Code Online (Sandbox Code Playgroud)

android firebase google-cloud-firestore

5
推荐指数
2
解决办法
2841
查看次数

使用 Dialog 作为带有 jetpack compose 的导航目的地

一个对话框可以有一个相当复杂的用户界面,更像是一个浮动屏幕而不是一个典型的 AlertDialog。因此,可能希望让对话框拥有自己的对话框ViewModel并能够导航到它。使用 jetpack compose 导航工件时,代码表明NavHost.

有没有办法导航到覆盖在当前 ui 上的对话框?这与我们如何导航到片段对话框是一致的。谢谢。

android-jetpack-navigation android-jetpack-compose

5
推荐指数
2
解决办法
378
查看次数

RemoteViews支持的方法

我正在尝试将值转发到Android RemoteView.某些值可以通过使用反射的set方法转发.例如背景颜色有效:

rv.setInt(R.id.viewId, "setBackgroundColor", 0xffff0000);
Run Code Online (Sandbox Code Playgroud)

虽然该机制对于一个param方法调用看起来非常通用,但它对某些方法不起作用.例如.在视图上设置alpha不起作用(在api级别15上运行):

rv.setFloat(R.id.viewId, "setAlpha", 0.5f);
Run Code Online (Sandbox Code Playgroud)

框架在运行时抱怨不支持setAlpha(float).有人知道为什么会这样吗?远程视图支持的方法的规则是什么?为什么阿尔法不在他们中间?

更新:

CommonsWare的答案是正确的.经过一些更多的研究后,对于一些人来说,ImageView.setAlpha(int)是可以远程访问的.它只在图像上设置alpha,因此不适用于九个等等.但它可能对某些人有用.

android

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