小编Abh*_*bhi的帖子

Android - 如何制作可滚动的constraintlayout?

我想制作一个允许我使用约束布局向下滚动的布局,但我不知道如何去做.如果scrollview是这样的constraintlayout的父级吗?

<?xml version="1.0" encoding="utf-8"?>

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true">

<android.support.constraint.ConstraintLayout
    android:id="@+id/Constraint"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>
Run Code Online (Sandbox Code Playgroud)

或者相反?也许有人可以指点我这方面的好教程或举个例子,我似乎无法找到一个.

此外,我不知道这是否是一个错误或一些配置,我不已经建立,但我看到了这样的图片 一个地方有蓝图"蓝色矩形"以外的一些成分但他们是可见的,而在我的身边,如果我将一个组件放在"白色空间"上我无法看到它或将其移动到任何地方,它出现在组件树上.

UPDATE

我找到了一种方法,可以在设计工具中滚动约束布局,使用horiontal准线向下推约束布局边框并将其扩展到设备之外,之后您可以使用引导线作为约束布局的新底部锚定组件.

android android-layout android-scrollview android-constraintlayout

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

删除RecyclerView滚动效果

RecyclerView内心有两个NavigationDrawer.两者都有蓝色滚动效果.

如何在两者中删除此效果RecyclerViews

我尝试更改:mRecyclerView.setHasFixedSize(true);to false,但它删除了滚动效果.(这种方法的作用是什么?)

链接到问题的图像

android scroll effect android-recyclerview

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

将 URL 作为参数传递给 Jetpack Compose Navigation

我在我的应用程序中创建了屏幕目的地HistoryDetail

composable(
    route = "HistoryDetail/{webpage}",
    arguments = listOf(
        navArgument("webpage") {
            type = NavType.StringType
        }
    ),
) { entry ->
    val text = entry.arguments?.getString("webpage") ?: ""
}
Run Code Online (Sandbox Code Playgroud)

当我尝试通过调用导航到该屏幕时:

navController.navigate("HistoryDetail/http://alphaone.me/")
Run Code Online (Sandbox Code Playgroud)

我收到illegalArgumentException以下消息。

java.lang.IllegalArgumentException: Navigation destination that matches request NavDeepLinkRequest{ uri=android-app://androidx.navigation/HistoryDetail/http://alphaone.me/ } cannot be found in the navigation graph NavGraph(0x0) startDestination={Destination(0x78c9ba0c) route=Home}
Run Code Online (Sandbox Code Playgroud)

编辑:

如果我打电话,它就会起作用:navController.navigate("HistoryDetail/test")

android android-jetpack-compose

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

为什么scanf()会在此代码中导致无限循环?

我有一个小的C程序,它只是从stdin读取数字,每个循环周期一个.如果用户输入了一些NaN,则应该向控制台输出错误,输入提示应该再次返回.输入"0"时,循环应该结束,给定的正/负值的数量应该打印到控制台.这是程序:

#include <stdio.h>

int main()
{
    int number, p = 0, n = 0;

    while (1) {
        printf("-> ");
        if (scanf("%d", &number) == 0) {
            printf("Err...\n");
            continue;
        }

        if (number > 0) p++;
        else if (number < 0) n++;
        else break; /* 0 given */
    }

    printf("Read %d positive and %d negative numbers\n", p, n);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,在输入一些非数字(如"a")时,这会导致无限循环一遍又一遍地写" - > Err ...".我想这是一个scanf()问题,我知道这个函数可以被更安全的替换,但这个例子适用于初学者,只知道printf/scanf,if-else和循环.

我已经阅读了这个问题的答案并浏览了其他问题,但没有真正回答这个具体问题.

c gcc scanf

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

如何在 Jetpack Compose 中使用 onclick 按钮显示小吃栏

我想在 Jetpack Compose 中显示带有 onclick 按钮的小吃栏
我尝试过这个

Button(onClick = {
    Snackbar(action = {}) {
        Text("hello")
    }
} 
Run Code Online (Sandbox Code Playgroud)

但是 AS 说“@Composable 调用只能在 @Composable 函数的上下文中发生”,
你能给我一个好的程序吗?
我希望它可以在 Button.onclick() 中运行

android android-jetpack-compose

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

如何在jetpack compose中将drawable设置为图像背景?

如何将可绘制资源设置为ImageJetpack 撰写的背景?

对应视图XML代码

<androidx.appcompat.widget.AppCompatImageView
    android:background="@drawable/drawable_black_circle"
    android:src="@drawable/app_logo"
    ... 
/>
Run Code Online (Sandbox Code Playgroud)

我当前的代码,

Image(
    painter = painterResource(id = R.drawable.app_logo),
    contentDescription = null,
    modifier = Modifier
        .height(160.dp)
        .width(160.dp)
        .padding(32.dp),
)
Run Code Online (Sandbox Code Playgroud)

Modifier.background()让我可以选择使用颜色作为背景。
同样寻找一种使用可绘制资源作为背景的方法。

注意:
寻找一种在图像中包含背景的方法。
不希望将图像包含在另一个具有背景的可组合项中。

android android-jetpack-compose

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

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

高程阴影被剪裁

我尝试将高程添加到我的自定义按钮,但结果是:

在此输入图像描述

如您所见,阴影被剪裁.我试图在StackOverflow和谷歌搜索,我发现类似的问题,但没有答案:)

XML:

<Button
   android:id="@+id/email_sign_in_button"
   android:layout_width="141dp"
   android:layout_height="45dp"
   android:textAlignment="gravity"
   android:text="@string/action_sign_in"
   android:gravity="center_horizontal"
   android:elevation="4dp" />
Run Code Online (Sandbox Code Playgroud)

这是我的自定义按钮样式.

button.xml:

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
    android:state_enabled="false"
    android:drawable="@drawable/button_disabled" />
<item
    android:state_pressed="true"
    android:state_enabled="true"
    android:drawable="@drawable/button_pressed" />
<item
    android:state_focused="true"
    android:state_enabled="true"
    android:drawable="@drawable/button_regular" />
<item
    android:state_enabled="true"
    android:drawable="@drawable/button_regular" />
</selector>
Run Code Online (Sandbox Code Playgroud)

没有按下的样式.

button_regular.xml:

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient android:angle="-90"
    android:centerX="10"
    android:centerY="10"
    android:endColor="#30bbff"
    android:gradientRadius="10"
    android:startColor="#0081c0"
    android:type="linear"/>
<stroke android:width="5dip" android:color="#ffffff" />
<corners android:radius="20dip"/>
<padding android:left="7dp"
    android:top="7dp"/>
</shape>
Run Code Online (Sandbox Code Playgroud)

xml android

21
推荐指数
2
解决办法
9208
查看次数

如何在 android jetpack compose 中显示工具提示

我正在尝试在我的应用程序 UI 中添加一个简单的工具提示,用于FABIconButtonMenu等。

示例工具提示

如何将其添加到jetpack compose中?
我熟悉如何使用 XML 和以编程方式进行添加,如此处所述

这些方法的局限性 - 尝试尽可能避免 XML,对于编程方法,出于明显的原因,compose 中没有 findViewById。

参考Jetpack 文档Codelab示例
没有任何与工具提示相关的内容。

任何帮助表示赞赏。

注意
不要寻找任何自定义项,简单明了的工具提示就可以了。
最好没有第三方库。

更新
任何有相同要求的人,请提出这个问题

android tooltip android-jetpack-compose

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

Compose UI 测试 - 如何断言文本颜色?

我正在尝试Text在我的组件上测试我可以用不同的颜色打印它,所以在我的测试中我正在验证它是否获得了预期的颜色。我正在寻找一种返回颜色的方法,但没有找到。

从现在开始,我断言文本是正确的,可见性是正确的,但是当试图找到获取颜色的方法时,我变得太深了,我正在寻找一个更简单的解决方案。

composeTestRule.onNode(hasTestTag("testTagForButton"), true)
            .assertExists()
            .assertTextEquals("Testing")
Run Code Online (Sandbox Code Playgroud)

我已经检查过我可以做一些类似.fetchSemanticsNode().layoutInfo.getModifierInfo()进入的事情Modifier,也许从那里我可以得到颜色,但它可能太多了。我还发现.captureToImage()也许我可以在上面得到颜色,但由于我必须放置像素,所以我认为这不是方法。

有什么简单的方法可以得到它吗?

android kotlin android-jetpack android-jetpack-compose android-jetpack-compose-testing

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