我想制作一个允许我使用约束布局向下滚动的布局,但我不知道如何去做.如果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
我RecyclerView内心有两个NavigationDrawer.两者都有蓝色滚动效果.
如何在两者中删除此效果RecyclerViews?
我尝试更改:mRecyclerView.setHasFixedSize(true);to false,但它删除了滚动效果.(这种方法的作用是什么?)
我在我的应用程序中创建了屏幕目的地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")。
我有一个小的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和循环.
我已经阅读了这个问题的答案并浏览了其他问题,但没有真正回答这个具体问题.
我想在 Jetpack Compose 中显示带有 onclick 按钮的小吃栏
我尝试过这个
Button(onClick = {
Snackbar(action = {}) {
Text("hello")
}
}
Run Code Online (Sandbox Code Playgroud)
但是 AS 说“@Composable 调用只能在 @Composable 函数的上下文中发生”,
你能给我一个好的程序吗?
我希望它可以在 Button.onclick() 中运行
如何将可绘制资源设置为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()让我可以选择使用颜色作为背景。
同样寻找一种使用可绘制资源作为背景的方法。
注意:
寻找一种在图像中包含背景的方法。
不希望将图像包含在另一个具有背景的可组合项中。
XML代码
<TextView
android:textSize="22sp"
... />
Run Code Online (Sandbox Code Playgroud)
对应的Jetpack compose代码是什么?
我尝试将高程添加到我的自定义按钮,但结果是:
如您所见,阴影被剪裁.我试图在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) 我正在尝试在我的应用程序 UI 中添加一个简单的工具提示,用于FAB、IconButton、Menu等。
如何将其添加到jetpack compose中?
我熟悉如何使用 XML 和以编程方式进行添加,如此处所述。
这些方法的局限性 - 尝试尽可能避免 XML,对于编程方法,出于明显的原因,compose 中没有 findViewById。
参考Jetpack 文档、Codelab和示例。
没有任何与工具提示相关的内容。
任何帮助表示赞赏。
注意
不要寻找任何自定义项,简单明了的工具提示就可以了。
最好没有第三方库。
更新
任何有相同要求的人,请提出这个问题。
我正在尝试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