android-xml 相关问题

Android项目以多种方式使用XML:定义项目和组件,构建布局,定义动画,创建菜单以及为项目指定资源(静态和动态)。

Android XML:“与具有相同 ID 的另一个标签冲突”

我最近从我的项目中删除了一个片段,包括其布局和视图模型。 (FragmentAddFlight、VmAddFlight、fragment_add_flight.xml) 令人惊讶的是我收到这些错误: [数据绑定...

回答 15 投票 0

如何不使用 Android Studio 使用 Jetpack Compose 创建项目

如果没有jetpack-compose,我无法创建普通项目,它总是在Android Studio中包含其库和配置,并且工作项目不需要使用它。 我以为它会打开

回答 1 投票 0

约束布局Y位置与边距值不匹配

我在运行时视图上设置带有边距的约束时遇到了某种麻烦。 这些是向用户显示视图时的 y 坐标和边距坐标 我这样设置边距:

回答 1 投票 0

TextView 在 Android 中不显示

在我的 Android 应用程序中,我尝试添加 TextView 来为我的某些活动添加标题。但是,它似乎不起作用,因为在我的所有活动中,TextView 都没有显示。我是开发新手

回答 4 投票 0

每个应用程序语言首选项 - 以编程方式获取应用程序的可用语言列表?

所以基于https://developer.android.com/guide/topics/resources/app-languages#kotlin 我们可以使用 安卓 { 安卓资源{ 生成本地化配置 = true } } 它会自动生成

回答 1 投票 0

Android 中删除设置时间选项中的时间选择器

Android 时间选择器无法删除设置时间选项 我已经检查了堆栈溢出问题,还检查了一些选项删除键盘设置时间图标,但没有删除该选项,键盘图标...

回答 2 投票 0

将旧的大型项目迁移到 Jetpack Compose 的可能性

所以,我在 2020 年左右开发了这个巨大的应用程序,仍然使用 xml 和所有这些,然后我就退出了。现在,我想继续开发该应用程序,但我看到事情发生了巨大变化

回答 1 投票 0

无法在约束布局中显示图像

我有这个xml,但只有当我硬调整图像的宽度和高度时才会显示图像。我不确定为什么我在代码中提供的约束不起作用。 我有这个 xml,但仅当我硬调整图像的宽度和高度时才会显示图像。我不确定为什么我在代码中提供的约束不起作用。 <merge 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="wrap_content" android:layout_height="wrap_content" tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout"> <androidx.cardview.widget.CardView android:id="@+id/cardview" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="8dp" android:layout_marginEnd="4dp" android:layout_marginStart="4dp" android:layout_marginTop="4dp" app:cardCornerRadius="4dp" app:cardElevation="2dp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"> <ImageView android:id="@+id/cover" android:layout_width="wrap_content" android:layout_height="wrap_content" android:scaleType="fitXY" android:importantForAccessibility="no" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:src="@drawable/placeholder" /> </androidx.cardview.widget.CardView> </merge> 注意:我无法将其更改为撰写,这是某些遗留代码的一部分。 请注意,<ImageView标签的这一部分是无操作的(您可以安全地删除它们) app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" 因为这些属性只能通过父子ConstraintLayout来读取,这是不正确的,它肯定是CardView...以及CardView的父级,好吧,这取决于膨胀的位置,也许CardView应该有这样的参数,在由 ConstaintLayout 严格托管时将会/应该工作

回答 1 投票 0

任务 ':app:mergeDebugResources' 执行失败,无法在源集中找到资源文件

每当我对项目中的 XML 文件进行任何更改并尝试运行它时,我都会收到此错误 - 任务“:app:mergeDebugResources”执行失败。 java.lang.IllegalArgumentException:无法

回答 11 投票 0

如何不使用 Android Studio 使用 Jetpack Compose 创建项目

如果没有jetpack-compose,我无法创建普通项目,它总是在Android Studio中包含其库和配置,并且工作项目不需要使用它。 我以为它会打开

回答 1 投票 0

致命异常:android.content.res.Resources$NotFoundException:Drawable org.radarcns.detail:drawable/status_searching,资源 ID #0x7f080130

我收到异常: 致命异常:android.content.res.Resources$NotFoundException:Drawable org.radarcns.detail:drawable/status_searching,资源 ID #0x7f080130 安卓引起的。

回答 1 投票 0

MaterialAutoCompleteTextView 更改主题时自动显示下拉菜单

我正在使用 MaterialAutoCompleteTextView 显示用于选择主题的下拉列表。 xml: 我正在使用 MaterialAutoCompleteTextView 显示用于选择主题的下拉列表。 xml: <com.google.android.material.textfield.TextInputLayout android:id="@+id/chooseThemeContainer" style="@style/ChooseThemeInputLayout" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:layout_marginEnd="16dp" android:hint="@string/theme" android:textColorHint="@color/textLink" app:endIconTint="@color/textLink" app:layout_constraintEnd_toStartOf="@id/saveName" app:layout_constraintStart_toStartOf="@id/avatar" app:layout_constraintTop_toBottomOf="@id/avatar"> <com.google.android.material.textfield.MaterialAutoCompleteTextView android:id="@+id/chooseTheme" android:layout_width="match_parent" android:layout_height="match_parent" android:drawableTint="@color/textLink" android:inputType="none" android:textColorHint="@color/textLink" android:textColor="@color/textLink"/> </com.google.android.material.textfield.TextInputLayout> 在fragment的onViewCreated方法中调用initChangeThemeEditText(): private fun initChangeThemeEditText() { viewModel.themeItems.observe(viewLifecycleOwner) { items -> binding.chooseTheme.setSimpleItems(items) val selectedIndex = when (themeController.themeType) { ThemeController.ThemeType.AS_SYSTEM -> 0 ThemeController.ThemeType.DAY -> 1 ThemeController.ThemeType.NIGHT -> 2 } binding.chooseTheme.setText(items[selectedIndex], false) } } themeController通过存储库读取并写入已安装主题的值到数据库 从 viewModel 我得到一个字符串列表: private val _themeItems = MutableLiveData<Array<String>>() val themeItems: LiveData<Array<String>> = _themeItems init { val items = arrayOf( resourceProvider.getString(stringResources.theme_as_system), resourceProvider.getString(stringResources.theme_day), resourceProvider.getString(stringResources.theme_night) ) _themeItems.value = items } 初次启动时一切顺利。保存的值已正确设置为 MaterialAutoCompleteTextView。 接下来,在选择侦听器中,主题会根据需要进行更改。 事实证明,片段及其视图被重新创建。 并且 MaterialAutoCompleteTextView 将在列表打开的情况下显示。 在 setText() 之后设置 binding.chooseTheme.dismissDropDown() 没有效果。 我尝试了这里的所有解决方案。 唯一有效的是: ... binding.chooseTheme.setText(items[selectedIndex], false) binding.chooseTheme.postDelayed(50) { binding.chooseTheme.dismissDropDown() } 但是这个解决方案并不让我满意并且在用户界面上可见。 有没有正常的方法来强制MaterialAutoCompleteTextView在重新创建后不打开列表? 回答你自己的问题。 毫不犹豫地打电话就解决了问题。 binding.chooseTheme.post { binding.chooseTheme.dismissDropDown() } 现在 UI 上没有关闭动画,但我仍然认为这不是正确的解决方案..

回答 1 投票 0

android - 更改 MaterialToolbar 菜单项图标颜色

我正在创建一个应用程序,其中有一个 MaterialToolbar 小部件。我想将图标颜色设置为白色。 我尝试遵循这个问题中接受的答案,但是,它不起作用。添加

回答 3 投票 0

如何更改预览视图的形状(即添加圆角)?

我在我的应用程序中使用 AndroidX Camera,并定义了一个简单的 PreviewView,其背景具有圆角。由于某种原因,我不明白为什么在运行应用程序时,PreviewView 是

回答 3 投票 0

TextInput 在小屏幕手机上显示太窄

在以下 xml 中,“message_entry”在小屏幕 (240 x 320) 上显示太窄,但在较大屏幕 (480 x 640) 上显示良好。 在以下 xml 中,“message_entry”在小屏幕 (240 x 320) 上显示太窄,但在较大屏幕 (480 x 640) 上显示良好。 <androidx.cardview.widget.CardView android:id="@+id/reply_bar_card" android:layout_width="match_parent" android:layout_height="wrap_content" app:cardBackgroundColor="@color/replyBarCard" app:cardCornerRadius="24dp" app:cardElevation="5dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:paddingBottom="24dp"> <ProgressBar android:id="@+id/send_progress" style="@style/Widget.AppCompat.ProgressBar.Horizontal" android:layout_width="match_parent" android:layout_height="3dp" android:indeterminate="true" android:visibility="invisible" /> <HorizontalScrollView android:id="@+id/attached_image_scroller" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="@dimen/message_list_padding" android:layout_marginEnd="@dimen/message_list_padding" android:paddingTop="8dp" android:paddingBottom="8dp" android:scrollbars="none" android:visibility="gone"> <LinearLayout android:id="@+id/attached_image_holder" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="12dp" android:layout_marginEnd="12dp" android:orientation="horizontal" /> </HorizontalScrollView> <LinearLayout android:id="@+id/smart_reply_container" android:layout_width="match_parent" android:layout_height="56dp" android:layout_marginStart="@dimen/message_list_padding" android:layout_marginEnd="@dimen/message_list_padding" android:gravity="end" android:orientation="horizontal" android:visibility="gone"> <ImageButton android:id="@+id/close_smart_replies" android:layout_width="32dp" android:layout_height="48dp" android:layout_gravity="center_vertical" android:layout_marginStart="8dp" android:background="?selectableItemBackgroundBorderless" android:clickable="true" android:contentDescription="@string/use_smart_replies" android:src="@drawable/ic_cancel" android:tint="@color/secondaryText" /> <LinearLayout android:id="@+id/smart_reply_suggestions_container" android:layout_width="0dp" android:layout_height="match_parent" android:layout_marginEnd="12dp" android:layout_weight="1" android:gravity="end" android:orientation="horizontal" /> </LinearLayout> <LinearLayout android:id="@+id/send_bar" android:layout_width="match_parent" android:layout_height="50dp" android:layout_marginStart="@dimen/message_list_padding" android:layout_marginEnd="@dimen/message_list_padding" android:alpha="0" android:clipToPadding="false" android:gravity="center_vertical|start" android:orientation="horizontal" android:padding="8dp" android:translationY="-32dp"> <ImageButton android:id="@+id/select_sim" android:layout_width="32dp" android:layout_height="48dp" android:background="?selectableItemBackgroundBorderless" android:clickable="true" android:contentDescription="@string/select_sim" android:src="@drawable/ic_sim" android:tint="@color/secondaryText" android:visibility="gone" /> <ImageButton android:id="@+id/view_scheduled_messages" android:layout_width="32dp" android:layout_height="match_parent" android:background="?selectableItemBackgroundBorderless" android:clickable="true" android:contentDescription="@string/view_scheduled_messages" android:src="@drawable/ic_schedule_small" android:tint="@color/secondaryText" android:visibility="gone" /> <FrameLayout android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_marginEnd="8dp"> <ImageButton android:id="@+id/attach" android:layout_width="32dp" android:layout_height="48dp" android:layout_gravity="center_vertical|start" android:background="?selectableItemBackgroundBorderless" android:clickable="true" android:contentDescription="@string/attach" android:src="@drawable/ic_attach" android:tint="@color/secondaryText" /> <TextView android:id="@+id/text_counter" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="bottom|center_horizontal" android:layout_marginBottom="2dp" android:gravity="center_horizontal" android:textColor="@color/secondaryText" android:textSize="12sp" /> </FrameLayout> <com.google.android.material.textfield.TextInputEditText android:id="@+id/message_entry" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@null" android:backgroundTint="@color/drawerBackground" android:hint="@string/type_message_to" android:imeOptions="actionSend|flagNoExtractUi" android:inputType="textCapSentences|textAutoCorrect|textMultiLine" android:maxLines="@integer/message_list_fragment_line_entry_count" android:minHeight="40dp" android:padding="8dp" android:paddingStart="8dp" android:paddingEnd="18dp" android:scrollHorizontally="false" android:textSize="16sp" /> <com.google.android.material.floatingactionbutton.FloatingActionButton android:id="@+id/send" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginEnd="8dp" android:contentDescription="@string/send_message" android:src="@drawable/ic_send" app:elevation="0dp" app:fabSize="mini" app:rippleColor="@android:color/white" /> </LinearLayout> <ViewStub android:id="@+id/attach_stub" android:layout_width="match_parent" android:layout_height="@dimen/attach_menu_height" android:layout="@layout/view_attach_menu" /> </LinearLayout> </androidx.cardview.widget.CardView> 小屏幕:(添加红框用于说明) 大屏幕:(添加红框作为说明) 预期的行为就像大屏幕,其中“message_entry”尽可能宽。为什么“message_entry”在小屏幕上那么窄?我该如何解决它? 原来是因为dimens.xml文件夹下有多个res文件造成的。这用于支持多种屏幕尺寸,在较小屏幕的 dimens.xml 中,有 <dimen name="message_list_padding">96dp</dimen>。一旦更改为0dp,布局就如预期的那样。 有关多个 dimens.xml 文件的更多信息,请参阅此答案中的#2。

回答 1 投票 0

防止 Snackbar 与 Activity 子 Fragment 的 ConstraintLayout 中的 FloatingActionButton 重叠

这是我当前的设置: 我有一个在根布局(CoordinatorLayout)上注册小吃栏的 BaseActivity: 这是我当前的设置: 我有一个在根布局(CoordinatorLayout)上注册小吃栏的 BaseActivity: <?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" android:id="@+id/snackbar_container" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_dodgeInsetEdges="bottom"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <com.google.android.material.appbar.AppBarLayout android:id="@+id/app_bar_layout" android:layout_width="match_parent" android:layout_height="wrap_content"> <include layout="@layout/toolbar" /> </com.google.android.material.appbar.AppBarLayout> <include layout="@layout/progressbar_with_text" /> <androidx.fragment.app.FragmentContainerView android:id="@+id/main" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout> </androidx.coordinatorlayout.widget.CoordinatorLayout> 现在我添加一个如下所示的片段: <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout 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"> <androidx.viewpager.widget.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="0dp" app:layout_behavior="@string/appbar_scrolling_view_behavior" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintTop_toTopOf="parent" /> <com.google.android.material.floatingactionbutton.FloatingActionButton android:id="@+id/fab_save" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/content_save" android:tint="@android:color/white" android:visibility="gone" app:backgroundTint="@color/secondary" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:tint="@android:color/white" app:useCompatPadding="true" tools:ignore="SpeakableTextPresentCheck" tools:visibility="visible" /> </androidx.constraintlayout.widget.ConstraintLayout> 我希望晶圆厂在显示时被小吃栏推起,目前它与小吃栏重叠。 我知道使用 CoordinatorLayout 作为根并将 FloatingActionButton (FAB) 放置在其中可以与属性 app:layout_dodgeInsetEdges="bottom" 配合使用。此设置可确保在显示 Snackbar 时将 FAB 向上推。但是,对于子片段,我无法获得类似的结果。是的,我的设置必须保持原样,因为我有多个彼此不同的片段,并且包含独特样式的 FAB,因此将 FAB 移动到活动级别不是一个选项。 您应该在 BaseActivity 中创建一个方法来显示小吃栏,在该方法中通过其 id 找到 coordinatorLayout。 public void showSnackbar(String message, int duration) { CoordinatorLayout coordinatorLayout = findViewById(R.id.snackbar_container); Snackbar.make(coordinatorLayout, message, duration).show(); } 你的fragment应该能够访问BaseActivity。确保你的activity实现了某个接口,这将允许fragment与activity进行通信。 public class MyFragment extends Fragment { private BaseActivity activity; @Override public void onAttach(Context context) { super.onAttach(context); if (context instanceof BaseActivity) { activity = (BaseActivity) context; } } private void showSnackbar(String message) { activity.showSnackbar(message, Snackbar.LENGTH_SHORT); } }

回答 1 投票 0

在底部对齐 RecyclerView 中的项目

我在 ConstraintLayout 中有一个 RecyclerView,其顶部从 textView 的底部开始,其底部向下延伸到父级。我希望此 RecyclerView 中的项目默认为 ...

回答 3 投票 0

java.lang.UnsupportedOperationException:无法将索引 89 处的值转换为维度:type=0x4

我的应用程序中捕获了以下异常。 12-02 11:49:12.640 10039 940 940 E AndroidRuntime: 致命异常: main 12-02 11:49:12.640 10039 940 940 E AndroidRuntime: 进程: com.an...

回答 1 投票 0

如何使用XML绘制圆角矩形?

这里是绘制具有四个圆角的矩形的标记片段: 这是用于绘制具有四个圆角的矩形的标记片段: <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="#fff"></solid> <padding android:bottom="5dp" android:left="-1dp" android:right="-1dp" android:top="5dp"></padding> <corners android:radius="2dp"></corners> </shape> 但是如果我只想将一侧(两个角)的角变圆,我该怎么做? 谢谢。 <corners android:bottomLeftRadius="2dp" android:bottomRightRadius="2dp" android:topLeftRadius="2dp" android:topRightRadius="2dp" /> 创建可绘制资源:- <?xml version="1.0" encoding="utf-8"?> <!-- res/drawable/rounded_edittext.xml --> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" android:padding="10dp"> <solid android:color="#FFFFFF"/> <corners android:bottomRightRadius="15dp" android:bottomLeftRadius="15dp" android:topLeftRadius="15dp" android:topRightRadius="15dp"/> </shape> 设置在任何视图的背景上方。 按照您的要求这样做。 <corners android:bottomLeftRadius="2dp" android:bottomRightRadius="2dp" android:topLeftRadius="0dp" android:topRightRadius="0dp" /> 或 <corners android:bottomLeftRadius="0dp" android:bottomRightRadius="0dp" android:topLeftRadius="2dp" android:topRightRadius="2dp" /> 或任何其他显示您运行时间的效果。可以在 xml 文件中将其显示出来。 形状 xmlns:android="http://schemas.android.com/apk/res/android" 机器人:形状=“矩形”> <solid android:color="#FF0000" /> <corners android:radius="16dp" />

回答 4 投票 0

android.view.InflateException:膨胀类 androidx.fragment.app.FragmentContainerView 时出错

我将我的应用程序作为公开测试版发布到 Play 商店。当我使用模拟器运行它或通过 Android Studio 连接手机时,我没有收到任何错误。但是,当我安装该应用程序时...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.