标签: material-components-android

Android芯片:如何更改文本垂直填充?

有没有办法改变芯片文本垂直填充?我深入研究了 api,看起来我们只能使用以下方法更改 startPadding 和 endPadding:

app:chipStartPadding
app:chipEndPadding
app:textStartPadding
app:textEndPadding
Run Code Online (Sandbox Code Playgroud)

那么我们该如何做诸如更改chipTopPadding 或textTopPadding 之类的事情呢?

android material-design android-chips material-components-android

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

Material Chip 输入小部件只能与 Theme.AppCompat 一起使用

在我使用 AutoCompleteEditText 和 ChipGroup 创建布局后,我试图在我的 Android 应用程序中创建一个 ChipInput,我将动态创建的 Chip 添加到其中,但在堆栈跟踪中出现以下错误:

E/ThemeUtils:视图类 com.google.android.material.chip.Chip 是一个 AppCompat 小部件,只能与 Theme.AppCompat 主题(或后代)一起使用。

此组件上的样式要求您的应用程序主题为 Theme.MaterialComponents(或其后代)。

问题是我的主题尚未设置为材质,但我仍然收到该错误,我什至尝试以编程方式将主题设置为芯片,但仍然出现该错误。

这是我以编程方式添加芯片的代码

private fun addChipToGroup(person: String, chipGroup: ChipGroup) {
    val chip = Chip(applicationContext)
    chip.text = person
    chip.isCloseIconVisible = true

    // necessary to get single selection working
    chip.isClickable = true
    chip.isCheckable = false
    chipGroup.addView(chip as View)
    chip.setOnCloseIconClickListener { chipGroup.removeView(chip as View) }
}
Run Code Online (Sandbox Code Playgroud)

应用程序在该方法的第一行崩溃

android android-theme kotlin android-chips material-components-android

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

如何创建带有图标和文本的切换按钮

在 android 中构建切换按钮的最佳方法是什么,如下图所示。我花费的时间比我愿意承认的要多,但到目前为止,似乎不可能同时获得圆形背景和图标。

我的布局

            <ToggleButton
            android:id="@+id/addButton"
            android:layout_width="match_parent"
            android:layout_height="45dp"
            android:background="@drawable/button_bg_rounded_corners"
            android:button="@drawable/check"
Run Code Online (Sandbox Code Playgroud)

查看

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/app_checkmark"
        android:state_checked="true" />
    <item android:drawable="@drawable/app_close"
        android:state_checked="false"/>
    </selector>
Run Code Online (Sandbox Code Playgroud)

BG

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true">

        <shape android:shape="rectangle" >
            <solid android:color="@color/appcolor_yellow" />
            <corners android:radius="20dp" />
        </shape>
    </item>
    <item android:state_checked="false" >
        <shape android:shape="rectangle" >
            <solid android:color="@color/appcolor_green"/>
            <corners android:radius="20dp" />
        </shape>
    </item>
</selector>
Run Code Online (Sandbox Code Playgroud)

按钮示例

我得到了什么

在此输入图像描述

android android-layout android-button material-components-android

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

为什么按钮上的图标看起来这么大?

我试图为按钮提供一个图标,但它看起来像这样!

在此输入图像描述

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:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <com.google.android.material.button.MaterialButton
        style="@style/Widget.MaterialComponents.Button.Icon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Test Button"
        app:icon="@drawable/ic_facebook"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)

我试图在互联网上找到相关问题,但不幸的是找不到与此问题相关的任何内容,或者我搜索得不够

android android-button material-design material-components-android

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

尝试使用 Android Material3 时出现未解决的参考错误

我在尝试使用 Jetpack Compose 和 Material3 组件构建新的 Android 应用程序时遇到以下未解决的参考错误。

在此输入图像描述

到目前为止,我已尝试过本页中提到的以下步骤:

  1. 将 android.material 的依赖项更新至 1.5.04 或更高版本
  2. 确保compileSDK为31
  3. 确保与 JAVA 8 编译
  4. 使用 AppCompatActivity 来扩展我的 MainActivity
  5. 缓存失效并重新启动

我的gradle代码如下:

plugins {
    id 'com.android.application'
    id 'kotlin-android'
}

android {
    compileSdk 31

    defaultConfig {
        applicationId "com.example.recoverme"
        minSdk 21
        targetSdk 31
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        vectorDrawables {
            useSupportLibrary true
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = …
Run Code Online (Sandbox Code Playgroud)

android kotlin material-components-android android-jetpack-compose android-jetpack-compose-material3

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

为 Material Design 3 创建主题以进行撰写时如何处理 Shape

我目前有一个用 jetpack compose 编写的应用程序,它使用androidx.compose.material:material.

from / import androidx.compose.material.MaterialTheme

@Composable
fun MaterialTheme(
    colors: Colors = MaterialTheme.colors,
    typography: Typography = MaterialTheme.typography,
    shapes: Shapes = MaterialTheme.shapes,
    content: @Composable () -> Unit
)
Run Code Online (Sandbox Code Playgroud)

我现在计划迁移到 Material3:(androidx.compose.material3:material3我知道仍处于 alpha 版本)。

但是,主题可组合现在不再允许任何形状

from / import androidx.compose.material3.MaterialTheme

@Composable
fun MaterialTheme(
    colorScheme: ColorScheme = MaterialTheme.colorScheme,
    typography: Typography = MaterialTheme.typography,
    content: @Composable () -> Unit
)
Run Code Online (Sandbox Code Playgroud)

我现在应该如何处理旧的形状定义?材料网站只讨论如何在 xml 和旧视图系统中做​​到这一点。

material-design material-components-android android-jetpack-compose android-jetpack-compose-material3

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

如何以编程方式获取 Material3 原色/强调色?

Google 推出了 Material 3,它允许用户选择一种颜色来应用于整个系统主题,但他们的文档不清楚,也没有提到如何以编程方式获取当前颜色以用于应用程序,例如更改视图的背景颜色或文字颜色。

例如:view.setBackgroundColor(Material3.getPrimaryColor());

当然Material3.getPrimaryColor()不存在,这只是我需要的一个例子。

如有任何帮助,我们将不胜感激,谢谢。

java android material-components-android

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

材质工具栏菜单背景填充和颜色

我通过应用程序迁移到 Material design 1.5.0。我对工具栏使用以下代码(简化):

内部活动:

<include layout="@layout/toolbar_default" />
Run Code Online (Sandbox Code Playgroud)

工具栏_默认值:

<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.appbar.MaterialToolbar
    ...
    app:theme="@style/defaultToolbarTheme"
    ...
    />
Run Code Online (Sandbox Code Playgroud)

款式:

 <style name="defaultToolbarTheme" parent="Theme.MaterialComponents.NoActionBar">
     <item name="android:textColorPrimary">?app_toolbar_foreground_color</item>
     <item name="android:textColorSecondary">?app_toolbar_foreground_color</item>
     <item name="android:background">@drawable/item_background_menu</item>
     <item name="android:itemTextAppearance">@style/MyActionBar.MenuTextStyle</item>
 </style>

 <style name="MyActionBar.MenuTextStyle" parent="TextAppearance.AppCompat.Widget.ActionBar.Subtitle" />
Run Code Online (Sandbox Code Playgroud)

项目背景菜单:

<selector>
    <item android:drawable="@color/blue_click" android:state_pressed="true"/>
    <item android:drawable="@drawable/item_background_menu_drawable"/>
</selector>
Run Code Online (Sandbox Code Playgroud)

item_background_menu_drawable:

<shape>
    <solid android:color="itemColor"/>
</shape>
Run Code Online (Sandbox Code Playgroud)

颜色:

<color name="itemColor">#1155a2</color>
Run Code Online (Sandbox Code Playgroud)

迁移之前,工具栏菜单如下所示:

在此输入图像描述

迁移后,菜单项的工具栏列表出现了一些奇怪的顶部和底部边框/填充:

在此输入图像描述

有人可以告诉如何更改此填充的颜色(目前似乎是 Android 菜单中使用的默认灰色),或者更好的是,如何删除此填充?谢谢。

android menu android-toolbar material-components-android

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

如何修改筹码样式?

我需要使用芯片制作以下 UI

在此处输入图片说明

我已经实现了芯片并使其可检查,但我不知道如何将其样式更改为图片

我更改了笔触颜色和背景颜色以及笔触宽度

所以正常的筹码没有问题,我的问题是检查过的筹码是蓝色的

任何人都可以请教吗?

android material-design android-chips material-components-android

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

MaterialButton和简单Button之间有什么区别吗?

如果将Theme.MaterialComponents.Light设置为主要主题,那么如果在xml布局中使用它们,这两个按钮之间会有什么区别吗?

<Button />

<com.google.android.material.button.MaterialButton />
Run Code Online (Sandbox Code Playgroud)

如我所见,它们的行为均与MaterialButtons相同。如果要获取旧的普通按钮的行为,则必须使用:

<androidx.appcompat.widget.AppCompatButton />
Run Code Online (Sandbox Code Playgroud)

提前致谢!

android android-appcompat android-button material-design material-components-android

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