小编May*_*jra的帖子

Jetpack 撰写框中的宽度和高度相等

所以我尝试使用 JetPack compose 创建一个国际象棋棋盘,并设法绘制了一些布局。但是,现在我有一个问题,我希望板方形的高度与宽度相等。我希望它是完美的正方形。

注意:我不想给出任何固定的宽度或高度。我想在屏幕的宽度中容纳正方形,然后每个正方形的高度应该与宽度一样多。

我尝试过的:

@ExperimentalFoundationApi
class PlayGameActivity : BaseActivity() {
    val darkSquare = Color(0xFF779556)
    val lightSquare = Color(0xFFEBECD0)

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            Column {
                Board()
            }
        }
    }

    @Composable
    fun Board() {
        Column {
            for (i in 0 until 8) {
                Row {
                    for (j in 0 until 8) {
                        val isLightSquare = i % 2 == j % 2
                        val squareColor = if (isLightSquare) lightSquare else darkSquare
                        Box(
                            modifier = Modifier
                                .weight(1f) …
Run Code Online (Sandbox Code Playgroud)

android android-jetpack-compose

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

对文本进行部分着色并使其在 Jetpack Compose 中可单击

对于 XML 中声明的视图,我们可以使用SpannableStringBuilder此处提到的/sf/answers/342818871/ 来为部分字符串着色。

但是使用 JetPack compose,Text我无法仅使用单个Text.

我想要这样的东西。

部分彩色文字

正如您所看到的,只有“注册”文本具有不同的颜色,而且我想让它可点击

这就是我的文本代码目前的样子

Text(text = "Don't have an account? Sign Up",
                        modifier = Modifier.align(Alignment.BottomCenter),
                        style = MaterialTheme.typography.h6,
                        color = MaterialTheme.colors.secondary,
                    )
Run Code Online (Sandbox Code Playgroud)

这在jetpack compose中可能吗?

android kotlin android-jetpack-compose android-compose-textfield

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

java.lang.UnsatisfiedLinkError: 找不到要加载的 DSO: libfbjni.so 结果: 0

我创建了一个新的 react-native 项目,并添加了我的 android native 模块作为依赖项。使用官方文档https://reactnative.dev/docs/native-modules-setup

当我运行它时,我收到以下堆栈跟踪错误:

java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libfbjni.so result: 0
        at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:825)
        at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:673)
        at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:611)
        at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:559)
        at com.facebook.soloader.NativeLoaderToSoLoaderDelegate.loadLibrary(NativeLoaderToSoLoaderDelegate.java:25)
        at com.facebook.soloader.nativeloader.NativeLoader.loadLibrary(NativeLoader.java:44)
        at com.facebook.jni.HybridData.<clinit>(HybridData.java:34)
        at com.facebook.flipper.android.FlipperThread.run(FlipperThread.java:25) 
Run Code Online (Sandbox Code Playgroud)

以下是我的 package.json

{
  "name": "albums",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "android": "react-native run-android",
    "ios": "react-native run-ios",
    "start": "react-native start",
    "test": "jest",
    "lint": "eslint ."
  },
  "dependencies": {
    "axios": "^0.19.2",
    "react": "16.11.0",
    "react-native": "0.62.0-rc.5",
    "react-native-my-fancy-library": "../react-native-my-fancy-library/"
  },
  "devDependencies": {
    "@babel/core": "^7.9.0",
    "@babel/runtime": "^7.9.2",
    "@react-native-community/eslint-config": "^1.0.0",
    "babel-jest": "^25.3.0", …
Run Code Online (Sandbox Code Playgroud)

react-native react-native-android

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

无法在 Jetpack compose 中将“Column”内联方法调用到本地最终 fun &lt;anonymous&gt;()

我正在使用Android studio 2020.3.1 Canary 15在 jetpack compose 中启动一个简单的基础项目。我遵循了本指南https://developer.android.com/jetpack/compose/setup并添加了所需的依赖项,我还将它们更新为最新版本beta06,因为它显示了警告。

现在,我运行时出现以下错误:

org.jetbrains.kotlin.codegen.CompilationException: Back-end (JVM) Internal error: Couldn't inline method call 'Column' into
local final fun <anonymous>(): kotlin.Unit defined in <packagename>.onCreate
{
            Column(
                modifier = Modifier.fillMaxSize(),
                verticalArrangement = Arrangement.Center,
                horizontalAlignment = Alignment.CenterHorizontally
            ) {

            }
        }
Cause: Not generated
Run Code Online (Sandbox Code Playgroud)

我的项目级别build.gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath "com.android.tools.build:gradle:7.0.0-alpha15"
        classpath …
Run Code Online (Sandbox Code Playgroud)

android android-jetpack-compose

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

显示布局边界未显示在撰写布局上

我在布局边界方面遇到问题,并认为当我激活或停用“显示布局边界”时,我必须重新启动应用程序(活动),否则它不起作用

重启后 应用后显示布局边界而不重新启动

在诺基亚 7.2 Android 10、Google 模拟器 Android 11 上测试

android android-jetpack-compose

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

Jetpack compose 中的共享元素转换

我想将我的图像徽标从屏幕 A 动画到屏幕 B。在基于 XML 的布局中,可以使用windowContentTransitions& transitionName。所以我想问Jetpack Compose中是否有类似的功能中是否有类似的功能?

我已经看过这个https://github.com/mobnetic/compose-shared-element

但是,是否有类似于 XML 的内置功能?

android android-jetpack-compose

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

从 Jetpack Compose 中的另一个可组合函数访问 TextField 值

我创建了两个TextField电子邮件、密码和Button登录名。现在,单击该按钮后,我想访问文本并根据验证显示成功/错误。

问题是它们位于两个不同的可组合函数中。

@Composable
    fun EmailField() {
        var email by remember { mutableStateOf("") }

        TextField(
            modifier = Modifier.fillMaxWidth(0.9f),
            colors = TextFieldDefaults.textFieldColors(
                textColor = Color.White,
                focusedIndicatorColor = Color.White,
                focusedLabelColor = Color.White
            ),
            value = email,
            onValueChange = { email = it },
            label = { Text("Email") },
            leadingIcon = {
                Icon(
                    Icons.Filled.Email,
                    "contentDescription",
                    modifier = Modifier.clickable {})
            }
        )
    }
Run Code Online (Sandbox Code Playgroud)

按钮:

@Composable
    private fun LoginButton() {
        Button(
            onClick = {
                      // validate email and password here
            },
            colors …
Run Code Online (Sandbox Code Playgroud)

android android-jetpack-compose android-compose-textfield

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

我如何解决 Android studio 4.2 渲染问题?

我今天安装了 4.2,自从这个操作后,我看不到旧文件中创建的一些页面,它给了我这个错误:

渲染问题:

java.lang.reflect.InvocationTargetException
    at jdk.internal.reflect.GeneratedMethodAccessor861.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at android.view.BridgeInflater.lambda$createViewFromCustomInflater$0(BridgeInflater.java:259)
    at android.view.BridgeInflater.createViewFromCustomInflater(BridgeInflater.java:285)
    at android.view.BridgeInflater.onCreateView(BridgeInflater.java:122)
    at android.view.LayoutInflater.onCreateView(LayoutInflater.java:928)
    at android.view.LayoutInflater.onCreateView(LayoutInflater.java:948)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1002)
    at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:309)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:959)
    at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1121)
    at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:1095)
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1082)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:680)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:499)
    at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:354)
    at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:431)
    at com.android.tools.idea.layoutlib.LayoutLibrary.createSession(LayoutLibrary.java:141)
    at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:710)
    at com.android.tools.idea.rendering.RenderTask.lambda$inflate$6(RenderTask.java:865)
    at com.android.tools.idea.rendering.RenderExecutor$runAsyncActionWithTimeout$2.run(RenderExecutor.kt:174)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -1
    at java.base/java.lang.StringLatin1.charAt(StringLatin1.java:47)
    at java.base/java.lang.String.charAt(String.java:693)
    at android.content.res.BridgeTypedArray.getType(BridgeTypedArray.java:1024)
    at android.content.res.BridgeTypedArray.getType(BridgeTypedArray.java:809)
    at android.content.res.BridgeTypedArray.getValue(BridgeTypedArray.java:778)
    at android.content.res.BridgeTypedArray.peekValue(BridgeTypedArray.java:847)
    at android.view.View.<init>(View.java:5951) …
Run Code Online (Sandbox Code Playgroud)

android rendering android-studio

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

喷气背包中的ProgressDialog compose

当用户执行某些操作(例如注册)时,我想显示不确定的进度对话框。使用ProgressDialog.

对于 compose,我发现了这个How can I render plain android ProgressBar with Compose?但这并不是我想要的,因为它只是一个视图。它不像对话框那样覆盖屏幕。

随着CircularProgressIndicator我能够做到这一点:

编写进度条

如您所见,它显示在视图下方。

我想创建这样的东西:

预期对话

它应该有:

  1. 昏暗的背景
  2. 绘制其他视图
  3. 不可取消

如何在 Jetpack compose 中实现这一点?

android android-dialog android-jetpack-compose

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