标签: material-components

更改右侧图标样式错误TextInputLayout

我想更改右侧图标错误(带有!符号的图像)的样式TextInputLayout但我不知道如何更改。

有可能的?。

文本输入布局

android android-textinputlayout material-components material-components-android

5
推荐指数
1
解决办法
1033
查看次数

材质按钮中定义的样式与 AppTheme 不兼容

我根据新的材质指南更改了 Apptheme 属性,因此我在所有项目中使用的材质按钮丢失了它们的主题颜色。

我尝试通过将默认设置设为父项并让它们更改其主要和次要颜色来制作自定义样式。

按钮的 XML 文件

<com.google.android.material.button.MaterialButton
    android:id="@+id/bs_create_business"
    style="@style/Widget.MaterialComponents.Button.OutlinedButton"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="left|center_vertical"
    android:text="@string/create_business"
    android:textAllCaps="true"
    app:backgroundTint="@color/browser_actions_bg_grey" />
Run Code Online (Sandbox Code Playgroud)

样式文件

    <style name="AppTheme"parent="Theme.MaterialComponents.Light.NoActionBar">
        <item name="colorPrimary">@color/foopprimary_500</item>
        <item name="colorPrimaryDark">@color/foopprimary_900</item>
        <item name="colorAccent">@color/foopsecondary_500</item>
        <itemname="android:windowBackground">@android:color/white</item>
        <item name="fontFamily">@string/default_font</item>

        <item name="colorSecondary">@color/foopsecondary_500</item>
        <item name="colorOnSecondary">@color/foopprimary_500</item>
    </style>
Run Code Online (Sandbox Code Playgroud)

我的输出是这样的: 在此处输入图片说明

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

5
推荐指数
1
解决办法
125
查看次数

TextInputLayout 以编程方式设置 startIconDrawable 的颜色

我想以TextInputLayout编程方式为我的启动图标设置开始图标,但我遇到了他的颜色问题。当我设置 drawable 时,它​​的颜色变成灰色,但它的原始颜色是橙色。我知道我可以通过startIconTint在 xml 中使用参数来改变它的颜色,但我想以编程方式改变它的颜色。有人可以帮我弄这个吗。

android material-design android-textinputlayout material-components material-components-android

5
推荐指数
1
解决办法
1615
查看次数

在 android 中膨胀类 android.support.design.widget.CollapsingToolbarLayout 时出错

我尝试使用CollapsingToolbarLayout. 但是应用程序崩溃了,日志是

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.gbs.lms/com.gbs.lms.MainActivity}: android.view.InflateException: Binary XML file line #13: Error inflating class android.support.design.widget.CollapsingToolbarLayout
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2327)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2392)
    at android.app.ActivityThread.access$800(ActivityThread.java:153)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1305)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:135)
    at android.app.ActivityThread.main(ActivityThread.java:5293)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
 Caused by: android.view.InflateException: Binary XML file line #13: Error inflating class android.support.design.widget.CollapsingToolbarLayout
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:757)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
    at android.view.LayoutInflater.parseInclude(LayoutInflater.java:916)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:802)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
    at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:555)
    at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:161)
    at com.gbs.lms.MainActivity.onCreate(MainActivity.java:31)
    at android.app.Activity.performCreate(Activity.java:5990)
    at …
Run Code Online (Sandbox Code Playgroud)

android android-support-library android-collapsingtoolbarlayout material-components material-components-android

5
推荐指数
1
解决办法
2839
查看次数

将样式应用于警报对话框

我决定在 android 上尝试材质警报对话框。我遇到的问题是当我尝试应用某些样式时。检查文档,我发现了这个:

<item name="materialAlertDialogTheme">@style/ThemeOverlay.MaterialComponents.MaterialAlertDialog</item>
Run Code Online (Sandbox Code Playgroud)

所以我决定试试这个:

  <style name="BaseTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar">

    <item name="materialAlertDialogTheme">@style/Theme.App.MaterialDialogAlert</item>

  </style>
      <style name="Theme.App.MaterialDialogAlert" parent="ThemeOverlay.MaterialComponents.Dialog.Alert">
        <!-- FIXME: this does not work. it does not change the title appearance. -->
    <!--    <item name="materialAlertDialogTitleTextStyle">@style/TextAppearance.App.MaterialDialogAlert.Title.Text</item>-->
        <!-- FIXME: this change only the title font, not the message appearance -->
        <item name="android:fontFamily">@font/nunito_semi_bold</item>
        <item name="buttonBarPositiveButtonStyle">@style/Widget.App.Button.TextButton</item>
        <item name="buttonBarNegativeButtonStyle">@style/Widget.App.Button.TextButton</item>
      </style>

    <style name="TextAppearance.App.MaterialDialogAlert.Title.Text" parent="MaterialAlertDialog.MaterialComponents.Title.Text">
        <item name="android:fontFamily">@font/nunito_semi_bold</item>
      </style>
Run Code Online (Sandbox Code Playgroud)

但到目前为止,我可以成功地设置按钮样式。对于标题和消息,我有一些问题。现在我可以通过以下方式将一些样式应用于标题:

<item name="android:fontFamily">@font/nunito_semi_bold</item>
Run Code Online (Sandbox Code Playgroud)

但我不认为这是正确的方法。首先,这不会将字体应用于消息部分。其次,我想应用其他文本样式,一种用于标题,一种用于消息部分。

我也试过检查这种风格:MaterialAlertDialog.MaterialComponents.Title.Text我可以看到这个项目在某个时候被应用:

<item name="android:textAppearance">?attr/textAppearanceSubtitle1</item>
Run Code Online (Sandbox Code Playgroud)

所以我决定在我的基本主题中声明:

<style name="BaseTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar">
    <item name="textAppearanceSubtitle1">@style/TextAppearance.App.Subtitle1</item>
  </style>

  <style name="TextAppearance.App.Subtitle1" parent="TextAppearance.MaterialComponents.Subtitle1">
    <item …
Run Code Online (Sandbox Code Playgroud)

android android-alertdialog material-design material-components material-components-android

5
推荐指数
1
解决办法
2034
查看次数

导航视图似乎改变了背景颜色

我想让我的导航视图的背景是#121212,但是它变成了一个更浅的灰色。然而,当应用相同的颜色作为背景时,视图中的项目会显示正确的颜色。

android:background="@color/navview"
app:itemBackground="@color/navview"
Run Code Online (Sandbox Code Playgroud)

测试项的背景设置为与导航视图背景相同的颜色,但是如下所示的颜色存在惊人的差异。

在此处输入图片说明

导航视图背景是否有过滤器?我尝试通过将背景色调模式设置为空来禁用它,

        nvView.backgroundTintMode = null
Run Code Online (Sandbox Code Playgroud)

然而它似乎没有效果。任何帮助表示赞赏!

编辑:

<androidx.drawerlayout.widget.DrawerLayout

    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/navigation_drawer"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/navview"
    android:fitsSystemWindows="true">

    <FrameLayout
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity" />

    <com.google.android.material.navigation.NavigationView
        android:id="@+id/nvView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:fitsSystemWindows="true"
        android:background="@color/navview"
        app:itemBackground="@color/navview"

        app:menu="@menu/toolbar_menu">


    </com.google.android.material.navigation.NavigationView>
</androidx.drawerlayout.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)

我的导航视图的背景颜色不正确,项目的背景颜色正确。我想要达到的颜色是#121212。

android kotlin android-navigationview material-components material-components-android

5
推荐指数
1
解决办法
479
查看次数

Android:有没有一种简单的方法可以为视图创建圆角,而不必每次都创建单独的可绘制对象?

我在互联网上浏览了各种解决方案,这使我们能够创建带有圆角的视图。它们中的大多数需要使用创建自定义视图,或者在每次我们需要圆角视图时在 xml 或九补丁中创建一个 drawable。

问题是,当我实现这样的视图时,我需要为每个这样的视图创建一个 drawable,即使两个视图除了背景颜色之外的所有东西都一样。这对我来说有点刺激,我听说 iOS 框架提供了一种创建圆角视图的好方法。任何帮助将非常感激。

编辑:除了圆角,视图和阴影的按压效果也是常用的样式。请让您的解决方案包含这些影响。

android android-shapedrawable material-components material-components-android

5
推荐指数
1
解决办法
3839
查看次数

Android 按钮上的进度指示器

我在 Android 项目中使用Material Design Button。我想在按下按钮时在按钮上创建一个进度指示器。Material Design 似乎还没有支持它。

有没有人建议我如何在 Material Design Button 中实现相同的目标。

谢谢

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

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

如何在 Android 中更改“MaterialDatePicker”的主题?

我已经使用MaterialDatePicker来选择单个日期,而且我已经完成了这项任务,但我无法更改标题和按钮的主题

        MaterialDatePicker.Builder builder;
        MaterialDatePicker materialDatePicker;

        long today = MaterialDatePicker.todayInUtcMilliseconds();
        CalendarConstraints.Builder con = new CalendarConstraints.Builder();
        con.setValidator(DateValidatorPointForward.now());
        builder.setSelection(today);
        builder.setCalendarConstraints(con.build());

        materialDatePicker = builder.build();

        findViewById(R.id.startCalender).setOnClickListener(v ->
                materialDatePicker.show(getSupportFragmentManager(), builder.toString())
        );

        materialDatePicker.addOnPositiveButtonClickListener(selection -> 
        Toast.makeText(this, materialDatePicker.getHeaderText(), 
        Toast.LENGTH_SHORT).show());
Run Code Online (Sandbox Code Playgroud)

附截图

android android-datepicker material-design material-components material-components-android

5
推荐指数
1
解决办法
1841
查看次数

使用 MaterialButton 和 shapeAppearance 的渐变颜色

我想做一个Button这样的: 在此处输入图片说明

我尝试使用styleshapeAppearance

<style name="ShapeAppearance.Button" parent="ShapeAppearance.MaterialComponents">
    <item name="cornerFamily">rounded</item>
    <item name="cornerSizeTopLeft">@dimen/button_corner_radius</item>
    <item name="cornerSizeTopRight">5dp</item>
    <item name="cornerSizeBottomRight">@dimen/button_corner_radius</item>
    <item name="cornerSizeBottomLeft">5dp</item>
</style>

<dimen name="button_corner_radius">40dp</dimen>
Run Code Online (Sandbox Code Playgroud)

我像这样在我的 MaterialButton 中应用样式:

app:shapeAppearance="@style/ShapeAppearance.Button" 
Run Code Online (Sandbox Code Playgroud)

结果是:

在此处输入图片说明

现在,我尝试放置一个线性渐变:

  • #DF2D48 @ 0.0
  • #D72D46 @ 0.2
  • #AF223B @ 0.5
  • #AC2139 @ 1.0

例如 :

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient
        android:startColor="#DF2D48"
        android:centerColor="#D72D46"
        android:endColor="#AC2139"
        android:angle="360" />
</shape>
Run Code Online (Sandbox Code Playgroud)

我在我的形状样式中使用它:

<item name="android:background">@drawable/test</item>
Run Code Online (Sandbox Code Playgroud)

但结果是一样的。为什么 ?

android android-button android-styles material-components material-components-android

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