android-layout 相关问题

布局定义用户界面的可视结构,例如活动,片段或应用程序窗口小部件的UI。

Flutter singlechildscrollview布局错误

我编写了如下所示的简单屏幕。 然而 singlechildscollview 列隐藏了上面的 +/- 按钮。 为什么会出现这种症状呢?我该如何解决它? 我的开发情况如下 安卓:2024.1.1

回答 1 投票 0

SearchView 光标不可见

我的搜索视图中的光标不可见。我怎样才能让它可见? 我的搜索视图内的光标不可见。我怎样才能让它可见? <androidx.appcompat.widget.SearchView android:id="@+id/edit_query" android:layout_width="0dp" android:layout_height="50dp" android:background="@android:color/white" android:ems="10" android:importantForAutofill="no" android:inputType="text" android:textColor="@color/app_dark_color" android:textStyle="bold" app:iconifiedByDefault="false" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:queryHint="@string/search" app:searchIcon="@drawable/ic_ricerca" tools:ignore="LabelFor" tools:text="Name" /> 我回顾了您的问题以及我们过去遇到的相同问题。我们尝试过的解决方案之一解决了我们的问题。请尝试使用该解决方案,它可能会解决您的问题。 <androidx.appcompat.widget.SearchView android:id="@+id/edit_query" android:layout_width="0dp" android:layout_height="50dp" android:background="@android:color/white" android:ems="10" android:importantForAutofill="no" android:inputType="text" android:textColor="#ff0000" android:textStyle="bold" app:iconifiedByDefault="false" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:queryHint="Search" tools:ignore="LabelFor" android:theme="@style/searchViewTheme" tools:text="Name" /> 样式.xml <style name="searchViewTheme"parent="Theme.MaterialComponents.DayNight.DarkActionBar"> <item name="colorControlActivated">@android:color/holo_orange_dark</item> </style> 解决方案: 以下是在使用 Kotlin 在 Android 应用程序中扩展布局后如何请求 EditText 的焦点: 科特林 绑定?.searchField?.post {holder.editTextInput.requestFocus()}

回答 2 投票 0

如何在Android中制作浮动的NavigationView

我想复制Google在其应用程序中的菜单,但我不知道是否有像NavigationView和DrawerLayout这样的组件允许制作此菜单,但这不是固定的...

回答 1 投票 0

没有android studio进行android开发的替代方法是什么?

我想成为一名 Android 开发人员。由于 Android Studio 非常需要内存,因此我的计算机上没有足够的内存用于 Android Studio。但我想在没有 Android S 的情况下继续 Android 开发...

回答 1 投票 0

更改无边框按钮的内边距

我正在开发一个应用程序,但遇到了一个小问题。我是无边框按钮样式 (style="@style/Base.Widget.AppCompat.Button.Borderless.Colored") 的超级粉丝,但我无法改变...

回答 2 投票 0

展开后自动滚动CardView

我正在开发一个 Android 应用程序,它有一个 ListView,其中包含使用自定义 ArrayAdapter 填充的 CardView。 CardView 有一个可扩展区域,通过滑动单击即可可见...

回答 2 投票 0

如何让数据绑定与 RRO 或 SRRO 一起使用

所以android让你使用数据绑定将可观察数据直接绑定到XML,这是有效的,我非常熟悉。 现在的问题是这如何与运行时资源覆盖一起使用? RRO 等...

回答 1 投票 0

RecyclerView - 连续列布局

我正在尝试创建一种布局,其中项目将在列中相互跟随(见下图),但我还没有到达那里。我尝试过 GridLayoutManager 和 StaggeredGridLayoutManager -

回答 4 投票 0

Android 中的 TextInputLayout 总是有一个默认背景

我有这样的 TextInputLayout 和 TextInputEditText 我有这样的TextInputLayout和TextInputEditText <com.google.android.material.textfield.TextInputLayout android:id="@+id/loginUsernameText" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/text_input_margin_left_right" android:layout_marginRight="@dimen/text_input_margin_left_right" android:layout_marginTop="@dimen/text_input_margin_top_bottom" android:hint="@string/username" android:layout_below="@id/loginButtonLogin"> <com.google.android.material.textfield.TextInputEditText android:id="@+id/loginUsername" android:layout_width="match_parent" android:padding="5dp" android:layout_height="wrap_content" android:inputType="textEmailAddress"/> </com.google.android.material.textfield.TextInputLayout> <com.google.android.material.textfield.TextInputLayout android:id="@+id/loginPasswordText" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/text_input_margin_left_right" android:layout_marginRight="@dimen/text_input_margin_left_right" android:layout_marginTop="@dimen/text_input_margin_top_bottom" android:hint="@string/password" android:layout_below="@id/loginUsernameText"> <com.google.android.material.textfield.TextInputEditText android:id="@+id/loginPassword" android:layout_width="match_parent" android:padding="5dp" android:layout_height="wrap_content" android:inputType="textPassword"/> </com.google.android.material.textfield.TextInputLayout> 这是我的 styles.xml 文件 <resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style> <style name="AppTheme.NoActionBar"> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> </style> <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" /> <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" /> <style name="TextAppearance.App.TextInputLayout" parent="@android:style/TextAppearance"> <item name="android:textColor">@color/white</item> <item name="android:textSize">14sp</item> </style> </resources> 所以我没有在 TextInputLayout 上使用任何额外的东西,它们看起来像这样 这种灰色背景始终存在。 如何删除此背景并仅获取默认的 TextInputLayout。谢谢。 https://github.com/material-components/material-components-android/issues/102 这似乎是一个实质性的文本字段错误。 您可以使用此代码暂时更改背景白色。 <com.google.android.material.textfield.TextInputLayout app:boxBackgroundColor="@android:color/transparent" android:background="@android:color/transparent"> <com.google.android.material.textfield.TextInputEditText/> </com.google.android.material.textfield.TextInputLayout> 去除背景色的一种方法是调整TextInputLayout的背景模式。 应用程序:boxBackgroundMode =“无” 为我工作。 XML 代码示例: <com.google.android.material.textfield.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content" app:boxBackgroundMode="none" app:errorEnabled="true" app:hintEnabled="false" app:layout_constraintTop_toTopOf="parent"> <com.google.android.material.textfield.TextInputEditText android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="top" android:hint="@string/comment_placeholder" android:inputType="textCapSentences|textMultiLine" android:maxLength="500" /> </com.google.android.material.textfield.TextInputLayout> 方法A (完全透明背景) <com.google.android.material.textfield.TextInputLayout app:boxBackgroundMode="filled" app:boxBackgroundColor="@null" ..> <com.google.android.material.textfield.TextInputEditText android:backgroundTint="@android:color/transparent" ..> 方法B (纯色背景) <com.google.android.material.textfield.TextInputLayout app:boxBackgroundMode="filled" app:boxBackgroundColor="?android:attr/colorBackground" ..> *对于我的情况,我需要它完全透明,因为屏幕背景不是纯色。如果您是这种情况,请使用方法A 对我来说它与app:boxBackgroundColor="@null"一起工作,就像这样: <com.google.android.material.textfield.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content" app:boxBackgroundColor="@null" android:hint="@string/description"> <com.google.android.material.textfield.TextInputEditText android:id="@+id/description" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="textMultiLine|textCapSentences" /> </com.google.android.material.textfield.TextInputLayout> 在我的情况下需要更改 TextInputLayout 和 TextInputEditText 中的背景 <com.google.android.material.textfield.TextInputLayout app:boxBackgroundColor="@color/transparent" android:background="@color/transparent" > <com.google.android.material.textfield.TextInputEditText android:background="@color/transparent" /> </com.google.android.material.textfield.TextInputLayout> 简单的方法对我有用! app:boxBackgroundMode="filled" app:boxBackgroundColor="@color/white" 我最近遇到了这个问题。上述解决方案均不适用于最新的材质主题版本。我花了一段时间才弄清楚。这是我的解决方案: 风格: <style name="Widget.App.TextInputLayout" parent="Widget.Design.TextInputLayout"> <item name="materialThemeOverlay">@style/ThemeOverlay.App.TextInputLayout</item> <item name="hintTextColor">@color/pink</item> <item name="android:textColorHint">@color/grey</item> </style> <style name="ThemeOverlay.App.TextInputLayout" parent=""> <item name="colorControlNormal">@color/grey</item> </style> 用途: <com.google.android.material.textfield.TextInputLayout android:id="@+id/password" style="@style/Widget.App.TextInputLayout" android:layout_width="0dp" android:layout_height="wrap_content" android:hint="@string/password" app:layout_constraintBottom_toTopOf="@+id/agreement" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/email"> <com.google.android.material.textfield.TextInputEditText android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="textPassword"/> </com.google.android.material.textfield.TextInputLayout> 我还强烈建议您查看这篇文章。 迁移至 Android 的材质组件 默认背景颜色基于 colorOnSurface 属性。 您可以使用以下方法覆盖此值: <com.google.android.material.textfield.TextInputLayout android:theme="@style/MyTextInputLayout_overlay" ..> 与: <style name="MyTextInputLayout_overlay"> <item name="colorOnSurface">@color/....</item> </style> 或者您可以使用 boxBackgroundColor 属性(在布局或自定义样式中): <com.google.android.material.textfield.TextInputLayout app:boxBackgroundColor="@color/....." ..> 一开始一切都很顺利。后来布局就被打破了。原因是我更改了属性背景TextInputEditText。透明度必须在 TextInputEditText 上设置,而不是在 TextInputLayout 中设置 android:background="#80FFFFFF" 您可以使用这些选项来自定义 TextInputLayout。 <com.google.android.material.textfield.TextInputLayout android:id="@+id/menuMakeList" style="@style/Widget.MaterialComponents.TextInputLayout.FilledBox.ExposedDropdownMenu" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="20dp" android:background="@drawable/background_round_menu_selector" app:boxBackgroundColor="@android:color/transparent" app:boxBackgroundMode="outline" app:boxStrokeColor="@android:color/transparent" app:boxStrokeWidth="0dp" app:endIconDrawable="@drawable/ic_arrow_down" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/textViewHeader"> <AutoCompleteTextView android:layout_width="match_parent" android:layout_height="wrap_content" android:background="null" android:hint="Make" android:inputType="none" android:padding="16dp" app:hintTextColor="#C8CCC9" /> </com.google.android.material.textfield.TextInputLayout> 事情就是这样。我已使用自定义圆角 xml 作为背景并覆盖材质 background_round_menu_selector.xml. 中的颜色 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="@color/white" /> <corners android:radius="15dp" /> <stroke android:width="2dp" android:color="#EAEAEA" /> </shape> 有一种解决方法是在 com.google.android.material.textfield.TextInputEditText 中添加属性 android:paddingStart="48dp"。您也可以根据需要更改该值。 这是我的activity_main.xml ?xml version="1.0" encoding="utf-8"?> <LinearLayout 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:id="@+id/main" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/mainbackground" android:orientation="vertical" tools:context=".SignUp"> <com.google.android.material.textfield.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content" app:startIconDrawable="@drawable/name" android:paddingStart="48dp" > <com.google.android.material.textfield.TextInputEditText android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingStart="48dp" android:hint="Name" /> </com.google.android.material.textfield.TextInputLayout> </LinearLayout>

回答 11 投票 0

如何在小部件中强制使用夜间/白天资源?

我需要在白天、夜晚或系统主题中显示应用程序小部件。所有颜色都是通过资源定义的。 如何忽略系统主题并强制使用“白天”或“夜间”资源?我

回答 1 投票 0

如何使用 Jetpack Compose 创建圆角边框按钮

我需要使用 Jetpack Compose 在 Button 中添加圆角边框 喜欢:

回答 7 投票 0

调用 AppCompatDelegate.setDefaultNightMode 后重新创建启动画面

我正在使用AppCompatDelegate.setDefaultNightMode(mode);在我的 Android 应用程序中设置夜间模式,每当用户选择共享首选项中偏好配置的任何模式时...

回答 2 投票 0

TabLayout 设置每个选项卡的间距或边距

我想在每个选项卡之间设置边距。就像在 PagerTabStrip 中一样,它有 setTextSpacing(int textSpacing) 来在选项卡之间设置文本间距。 TabLayout 可以吗?

回答 14 投票 0

BottomNavigationView 高度问题 - 图标未正确居中

我的 BottomNavigationView 遇到问题,图标未垂直居中。在 Android Studio 预览中,一切看起来都很完美,但是当我在模拟器上运行该应用程序时,嘿...

回答 1 投票 0

Android ScrollView 占据整个设备空间(垂直)

我的片段(FrameLayout)(w:match_parent,h:fill_parent)有两个包含布局: ScrollView(w:match_parent,h:fill_parent) LinearLayout(w:match_parent,h:wrap_content) 我不明白,w...

回答 3 投票 0

如何通过半透明背景停止点击事件?

当用户单击某个按钮时,我试图在另一个视图上设置半透明视图。同时我希望我的背景视图不可点击。 所以基本上我正在设置...

回答 4 投票 0

如何在 Jetpack Compose 中将 TextUnit 转换为 Dp?

我知道它们之间的区别。我想根据 lineHeight 计算文本高度。 lineHeight 的值在 TextUnit 中,所以我想将其转换为 Dp。

回答 6 投票 0

如何制作我想要的图像中的 XML 布局?

考虑我的 semi-circle.xml 文件: 考虑我的semi-circle.xml文件: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="@color/semicircle"/> <size android:width="10dp" android:height="5dp"/> <corners android:bottomLeftRadius="20dp" android:bottomRightRadius="20dp"/> </shape> 此外,对于我有的按钮the_two_buttons.xml: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="@color/semicircle"/> <!-- Button background color --> <corners android:radius="25dp"/> <!-- Corner radius --> <padding android:left="8dp" android:top="8dp" android:right="8dp" android:bottom="8dp"/> </shape> 这是我写的XML代码: <?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:id="@+id/main" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/semi_circle"> <ImageView android:id="@+id/profile_avatar" android:layout_width="10dp" android:layout_height="5dp" android:layout_marginTop="50dp" android:src="@drawable/semi_circle" /> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:text="@string/intellij_clicker" android:textSize="30.sp" android:textStyle="bold" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.07" /> </RelativeLayout> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="16dp" android:background="@drawable/the_two_buttons" android:paddingStart="16dp" android:paddingEnd="16dp" android:text="Button 1" android:textColor="@android:color/white" android:textColorHighlight="#B1D18A" android:textColorHint="#B1D18A" android:textColorLink="#B1D18A" android:textCursorDrawable="#B1D18A" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> </LinearLayout> <LinearLayout android:layout_height="match_parent" android:layout_width="match_parent" android:orientation="vertical"> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button 2" android:background="@drawable/the_two_buttons" android:textColor="@android:color/white" android:paddingStart="16dp" android:paddingEnd="16dp" android:layout_marginTop="16dp" app:layout_constraintTop_toBottomOf="@id/button1" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent"/> </LinearLayout> </androidx.constraintlayout.widget.ConstraintLayout> 这就是我所期望的: 但场景有所不同: 这是怎么回事?由于我是 XML android 布局的新手,所以我渴望学习。谢谢。我对何时使用 RelativeLayout 和 LinearLayout 感到困惑。任何形式的建议将不胜感激。 使用ConstraintLayout,对于复杂的UI设计来说,它是一种比RelativeLayout和LinearLayout更灵活的布局。 <!-- half_circle.xml --> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <corners android:bottomLeftRadius="1000dp" android:bottomRightRadius="1000dp" android:topLeftRadius="0dp" android:topRightRadius="0dp" /> <solid android:color="#A3D178" /> </shape> 屏幕用户界面 <?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:id="@+id/main" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <RelativeLayout android:id="@+id/header" android:layout_width="0dp" android:layout_height="200dp" android:background="@drawable/semi_circle" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHeight_percent="0.3" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintWidth_percent="1"> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:text="@string/intellij_clicker" android:textColor="@android:color/black" android:textSize="30sp" android:textStyle="bold" /> </RelativeLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:orientation="vertical" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintTop_toTopOf="parent"> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="16dp" android:backgroundTint="#A3D178" android:paddingStart="16dp" android:paddingEnd="16dp" android:text="@string/start" android:textColor="@android:color/black" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/header" app:layout_constraintWidth_percent="0.5" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="16dp" android:backgroundTint="#A3D178" android:paddingStart="16dp" android:paddingEnd="16dp" android:text="@string/settings" android:textColor="@android:color/black" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/button1" app:layout_constraintWidth_percent="0.5" /> </LinearLayout> </androidx.constraintlayout.widget.ConstraintLayout>

回答 1 投票 0

Android Studio - XML 布局设计器拆分视图更改方向

我不确定发生了什么,但拆分 XML 设计视图现在是水平显示而不是垂直显示。 (设计视图位于底部,代码视图位于顶部。)我在 UI 上找不到任何地方可以...

回答 2 投票 0

Android - 如何在具有两种或多种颜色的矢量绘图上设置色调

我喜欢矢量绘图,事实上我可以使用简单的色调属性更改每个布局中的色调,如下所示: 我喜欢矢量绘图,事实上我可以使用简单的色调属性更改每个布局中的色调,如下所示: <ImageView android:id="@+id/image_payment_cash" android:layout_width="wrap_content" android:layout_height="wrap_content" android:tint="@color/color1" android:src="@drawable/ic_cash" /> 但我想知道是否有一种方法可以为同一向量(对于多色向量)指定两种或多种色调? 所以可以这样设置: <ImageView android:id="@+id/image_payment_cash" android:layout_width="wrap_content" android:layout_height="wrap_content" android:tint1="@color/color1" android:tint2 = "@color/color2" android:src="@drawable/ic_cash" /> 不,默认情况下,无法在 XML 中为 Vector Drawable 的多种不同颜色着色。 您可以在 Java/Kotlin 中以编程方式将可绘制文件膨胀为 VectorDrawable 类,然后遍历每一层,然后单独更改颜色。 通过使用相同的代码,您可以创建一个具有“tint1”和“tint2”属性的自定义 ImageView。 如果您使用 API 21 以下的 Vector Drawables,请注意 Android 框架使用不同的类来反向移植某些 VD 元素。 porterduff 模式无法帮助在图像中着色两种不同的颜色?

回答 2 投票 0

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