我有一个Image如下所示的组合:
Image(
bitmap = ImageBitmap.imageResource(id = R.drawable.testimage),
contentDescription = null, // Only decorative image
contentScale = ContentScale.FillWidth,
modifier = Modifier
.requiredHeightIn(max = 250.dp)
.fillMaxWidth()
.semantics { testTag = "MyTestTag" },
)
Run Code Online (Sandbox Code Playgroud)
在仪器测试期间,我想确保设置了正确的绘图。我在类中没有找到任何东西可以实现这一点,例如SemanticsProperties编写自定义匹配器。有人可以帮忙吗?
我可以看到“Play Console”期望为“用户名/密码资源 ID”字段传递“旧” ID: android.view.View
我无法弄清楚如何为 Jetpack Compose 视图层次结构提供资源 ID。我怀疑它应该以某种方式与 相连Semantics,但我不确定 Play Console 是否支持 Jetpack Compose 视图。
好奇是否有人能够设置这个。
android prelaunch google-play-console android-jetpack android-jetpack-compose
我有以下活动
class MainActivity : AppCompatActivity() {
private lateinit var drawerLayout: androidx.drawerlayout.widget.DrawerLayout
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.main_activity)
drawerLayout = drawer_layout
val navController = Navigation.findNavController(this, R.id.fragment_main_navHost)
setSupportActionBar(toolbar)
NavigationUI.setupActionBarWithNavController(this, navController, drawerLayout)
navView_main.setupWithNavController(navController)
}
override fun onSupportNavigateUp(): Boolean {
return NavigationUI.navigateUp(drawerLayout,
Navigation.findNavController(this, R.id.fragment_main_navHost))
}
override fun onBackPressed() {
if (drawerLayout.isDrawerOpen(GravityCompat.START)) {
drawerLayout.closeDrawer(GravityCompat.START)
} else {
super.onBackPressed()
}
}
Run Code Online (Sandbox Code Playgroud)
你可以看到它与导航图相关联,我正在使用导航抽屉.当我浏览抽屉中的项目时,我想保留汉堡图标,只有当我点击片段或弹出窗口中的项目时才将其更改为上/后按钮,并确保系统的行为反映了什么用户期望基于显示的图标.那可能吗
android kotlin navigation-drawer android-jetpack android-architecture-navigation
对于新的应用程序,我使用Jetpack导航库来实现正确的后退导航.第一级导航是导航抽屉,如文档中所述,可以使用jetpack导航.但是ViewPager和TabLayout实现了另一个导航级别.由TabLayout切换的片段包含额外的线性导航层次结构.但是,在Jetpack Navigation中似乎不支持ViewPager/TabLayout.必须实现FragmentPagerAdapter,并在切换选项卡时结束托管后端堆栈.顶级导航与每个选项卡内的导航之间存在脱节.有没有办法让这个工作与Jetpack导航?
android android-navigation android-architecture-components android-jetpack android-architecture-navigation
我正在使用导航组件在我的应用程序中导航。它在片段内工作正常,但无法在包含实际导航主机的活动中找到导航主机。
当用户单击 FAB 时,我试图打开一个新片段,我将其包含在主要活动的 XML 中。当我调用 findNavController() 时,它找不到控制器。导航主机控制器位于 XML 布局中。我不明白为什么它找不到它。
主要活动
class MainActivity : AppCompatActivity(), OnActivityComponentRequest {
override fun getTabLayout(): TabLayout {
return this.tabLayout
}
override fun getFap(): FloatingActionButton {
return this.floatingActionButton
}
private lateinit var tabLayout: TabLayout
private lateinit var floatingActionButton: FloatingActionButton
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
setSupportActionBar(toolbar)
this.tabLayout = tabs
this.floatingActionButton = fab
fab.setOnClickListener {
it.findNavController().navigate(R.id.addNewWorkoutFragment)
}
}
}
Run Code Online (Sandbox Code Playgroud)
活动主 XML
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
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"
tools:context=".domain.MainActivity"
android:animateLayoutChanges="true">
<com.google.android.material.appbar.AppBarLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:theme="@style/AppTheme.AppBarOverlay"> …Run Code Online (Sandbox Code Playgroud) 我实际上不确定,如何使用导航控制器组件设置不同工具栏的正确方法或最佳实践
在我的应用程序中。我想设置 2 个不同的工具栏。
两个不同颜色的工具栏。这只是为了简化案例,实际上我有多个工具栏
我正在使用导航控制器组件。目前在我的主活动中作为主持人,我使用此代码在主活动中设置了绿色工具栏
setSupportActionBar(green_toolbar)
supportActionBar?.setDisplayShowTitleEnabled(false)
// set up top hierarchy destination
val appBarConfiguration = AppBarConfiguration(setOf(
R.id.destination_home,
R.id.destination_search,
R.id.destination_user_control,
R.id.destination_create_event)
)
green_toolbar.setupWithNavController(navController,appBarConfiguration)
Run Code Online (Sandbox Code Playgroud)
那么使用导航控制器组件设置不同工具栏的最佳方法是什么?
我必须在我的主要活动中制作这两个不同的工具栏吗?或者我是否必须将 fragmentY 目的地(具有红色工具栏)设置为另一个活动而不是片段?
或者....我不知道....请帮忙:)
android android-navigation android-architecture-components android-jetpack android-architecture-navigation
我想将一张 gif 放入我的应用程序中。我知道如何插入图像资源,但是当我尝试添加 gif 时,它变成了静态图像。
DrawImage(image = +imageResource(R.drawable.gif))
Run Code Online (Sandbox Code Playgroud)
有没有人尝试过在 Jetpack Compose 中添加 gif,因为很难在网上找到如何添加 gif 文档?
我有一个在 aBottomNavBar中被调用bottomBar的 a Scaffold。
每个屏幕都包含一个LazyColumn显示一堆图像的。
出于某种原因,当我完成滚动时,BottomNavBar项目列表的下部重叠。
我怎样才能解决这个问题?
这里是MainActivity的设置内容
SetContent{
Scaffold(
topBar = {
TopAppBar(
title = { Text(text = "tartufozon") },
actions = {
IconButton(onClick = { Timber.d("Mail clicked") }) {
Icon(Icons.Default.Email, contentDescription = null)
}
}
)
},
bottomBar = {
BottomNavBar(navController = navController)
}
) {
BottomNavScreensController(navController = navController)
}
}
Run Code Online (Sandbox Code Playgroud) 我希望文本的大小不会.dp根据系统字体而改变。如何在 Jetpack Compose“文本”可组合项中实现此目的
我有 2 个屏幕,它们都有自己的Scaffold和TopAppBar。当我使用 Jetpack Navigation Compose 库在它们之间导航时,应用程序栏会闪烁。为什么会发生这种情况以及我该如何摆脱这种情况?
代码:
导航:
@Composable
fun TodoNavHost(
navController: NavHostController,
modifier: Modifier = Modifier
) {
NavHost(
navController = navController,
startDestination = TodoScreen.TodoList.name,
modifier = modifier
) {
composable(TodoScreen.TodoList.name) {
TodoListScreen(
onTodoEditClicked = { todo ->
navController.navigate("${TodoScreen.AddEditTodo.name}?todoId=${todo.id}")
},
onFabAddNewTodoClicked = {
navController.navigate(TodoScreen.AddEditTodo.name)
}
)
}
composable(
"${TodoScreen.AddEditTodo.name}?todoId={todoId}",
arguments = listOf(
navArgument("todoId") {
type = NavType.LongType
defaultValue = -1L
}
)
) {
AddEditTodoScreen(
onNavigateUp = {
navController.popBackStack()
},
onNavigateBackWithResult = { result …Run Code Online (Sandbox Code Playgroud) android android-jetpack android-jetpack-navigation android-jetpack-compose android-jetpack-compose-scaffold
android ×10
android-jetpack ×10
android-architecture-navigation ×3
kotlin ×3
android-architecture-components ×2
android-jetpack-compose-scaffold ×1
composable ×1
gif ×1
navigation ×1
prelaunch ×1