问题标签 [android-architecture]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
289 浏览

android - How to organize architecture of displaying two different Fragments in activity?

enter image description here

I have some sort of architecture issue:

I have Activity in which I need to show one of 3 views (one view at one moment in time):

1. One view with stable AppBarLayout + another part of the screen is NestedScrollView that needs to be in separate fragment.
2. One view with stable AppBarLayout + another part of screen need to be a fragment with two tabs to switch between them.
3. Connection lost view - is a fullscreen view without AppBar - just to show that there is no connection.

The upper part of AppBarLayout - I made. Looks like good, but I need runtime to switch Fragments depending on the response from Server. I am sending a request to the server in onCreate method in MainActivity, and then in onDataLoadedFromServer callback, depending on response - I am deciding which fragment to create. But my application crashes, because fragments fields are not initialized properly - the view is not attached to fragment. When I am adding fragment in onCreate method - everything is working good, but at that time I don't have a response from server.

  1. Where to place TabLayout? And where ViewPager? Do I need to put TabLayout in main_activity.xml, and ViewPager in separate fragment_2_layout. And then add it to FrameLayout (container for fragment which is located in main_activity)?
  2. Is it good practice to load some data from the server in the fragment? Or it's better to load data in Activity and then set it through the method call to Fragment?

Please, provide some sort of pseudo code to understand logic. Thanks!.


0 投票
1 回答
2184 浏览

android - view 可以从 MVVM 中的 ViewModel 请求数据吗?

我一直在阅读有关 MVVM 模式的信息。View应该观察变化ViewModel并相应地采取行动,但是如果View在 MVVM 架构中可以使用以下代码,我会感到困惑。

这里View不是观察变化,而是从ViewModel. 这在 MVVM 中被认为是正确的吗?

0 投票
0 回答
279 浏览

java - 检测霓虹灯支持

我已经为在 android 上使用的不同 cpu 构建了 ffmpeg,我想知道在运行时(在 java 中)检测它们,以便选择我要使用的二进制文件

在android文档上我发现:

这是我需要的,但我想在 java 端这样做......我不想再添加一个 jni 层来获取这些信息

有谁知道如何通过java api获取它?

0 投票
0 回答
150 浏览

android - 隐藏库的内部类

在开发 android 库时,是否可以隐藏内部类,以便使用该库的人无法使用它们?

假设有一个模块sdk。假设有人开发了一个应用程序并依赖于sdk.

sdk提供了一个接口(比如说X它的实现XImpl),然后有很多内部类用于实现XImpl.

如何隐藏类以便库的用户只看到X, XImpl(可能是参数)?

sdk通过 Gradle 存储库分发,所以我可以稍微使用模块并提取它,但在最好的情况下,我希望通过一些 ProGuard 配置或类似配置来实现。

0 投票
6 回答
14687 浏览

android - Androidx 和数据绑定

我正在将 Android P 测试的依赖项迁移到 androidx 依赖项。由于一些不太清楚的原因,我的项目不再编译(不,我不会提供细节以避免明显的问题)。我发现(通过gradlew dependencies)数据绑定使用“oldschool”依赖android.arch.lifecycle:runtime:1.0.3而不是androidx.lifecycle:lifecycle-runtime:2.0.0-beta01. 我想这可能是原因之一。

知道如何强制使用新的包名称/依赖项吗?

0 投票
1 回答
1889 浏览

android - 房间查询不起作用

我正在尝试在我的项目中使用RoomLiveData。在我的应用程序中,我有作者表。数据插入得很好,但是当我尝试从表中读取某些内容时,它没有给我记录。我还看到了带有 SQLite Opener 软件的数据库。它向我展示了所有数据。

下面是我的作者实体。

这是我的 Author Dao 界面。

最后,这是我的 RoomDatabase 类。

感谢您的时间。

0 投票
1 回答
494 浏览

android - android MVVM将ViewModel设置为Fragment的正确方法是什么

我正在练习 Google MVVM https://github.com/googlesamples/android-architecture/tree/todo-mvvm-databinding,在链接 Fragment 和 ViewModel 时遇到问题。

谷歌演示是这样的:

在活动中,

  1. Fragment.newInstance()
  2. new ViewModel()
  3. fragment.setViewModel(viewModel). (Implementing a setViewModel method in Fragment)
  4. viewmodel.loadingData() in fragment's onResume or onStart

我的问题是,这似乎不安全。如果由于某种原因,系统回收片段并使用默认构造函数重新创建,viewModel将是 null 吗?

我是对的还是我错过了什么?

作为一种解决方法,我认为ViewModel()在 Fragment 的onCreateView方法中添加新的应该没问题?

0 投票
0 回答
81 浏览

android - 没有 RX java 或 RX android 的模块化 android 应用

我已经浏览过这个 github 应用程序, Buffer 应用程序 GitHub 链接

我喜欢这个项目,并花了很多时间来很好地理解它。但唯一的问题是我想在没有 RX java 的情况下做到这一点,

我试图理解我的问题,

在 domain 部分,Rxjava 是将结果从各个数据源重定向到相应的源或演示者以获取成功或错误的东西

所以,我只想了解没有 RXJava 怎么办?如果你们能提供一些示例应用程序,那就太好了。具有相同的模块化架构,或者我们如何使用相同的 github 应用程序来实现它(更喜欢这个)。

我只是想知道,我们如何用自定义侦听器或最小代码替换 RX,以便在收到数据后它可以将侦听器映射到相应的数据源,反之亦然。

我还在这个 GitHub 应用程序上打开了一个问题,带有以下 url, 我在这个应用程序中打开的问题。

但我认为开发人员有点忙。

0 投票
2 回答
1769 浏览

android - 事件包装器模式是否取代了 SingleLiveEvent 的使用?

我最近在我的 Android 应用程序中采用了 MVVM。为了解决应用程序生命周期的潜在问题,谷歌发布了 LiveData。

LiveData 的使用有不同的场景,正如Jose Alcérreca 撰写的中篇文章所指出的,您可以使用 SingleLiveEvent 或类似事件包装器模式的东西。

我想确保SingleLiveEvent事件包装器模式,这是在 Android MVVM 架构中与 LiveData 一起使用的最佳实践。而且我发现今年(2018 年)的Google I/O 应用程序没有使用SingleLiveEvent,而是使用事件包装器模式

之前我在项目android-architecture上开了一个issue,起初我正在寻求官方回复,但似乎根本没有任何评论。因此,我想听听已经使用这些东西的开发人员的建议并对此进行反思。

请分享您的宝贵经验,在此先感谢您。

0 投票
0 回答
976 浏览

android - 使用导航架构组件实现时如何在选项卡布局的选项卡中添加向左或向右滑动

在 TabLayout 的选项卡中实现滑动的一种方法是使用 viewpager。使用导航架构组件进行导航尚不清楚如何使用 viewpager。如果我们不使用 viewpager,在 TabLayout 的选项卡中实现向左或向右滑动的推荐方式是什么。