标签: mdc-components

关于appComponentFactory,AndroidX Build在发布模式下失败

我正在使用Android P并针对AndroidX进行编译.在debug/beta中运行良好,但是当我发布时,我在运行时遇到了一个神秘的崩溃:

2018-06-24 00:21:26.080 11971-11971 /?E/LoadedApk:无法实例appComponentFactory抛出java.lang.ClassNotFoundException:未找到路径类 "androidx.core.app.CoreComponentFactory":DexPathList [zip文件"/data/app/app.itsyour.elegantstocks-EuVZWdDgzplhm0Hpa90VwA= =/base.apk"],nativeLibraryDirectories = [/数据/应用/ app.itsyour.elegantstocks-EuVZWdDgzplhm0Hpa90VwA ==/LIB/86,/系统/ lib中]在dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:126 )java.lang.ClassLoader.loadClass(ClassLoader.java:379)at java.lang.ClassLoader.loadClass(ClassLoader.java:312)at android.app.LoadedApk.createAppFactory(LoadedApk.java:226)at android.app .LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:731)在android.app.LoadedApk.getClassLoader(LoadedApk.java:772)在android.app.LoadedApk.getResources(LoadedApk.java:994)在android.app.ContextImpl.createAppContext(在android.app.ActivityThread.access $ 1000的android.app.ActivityThread.handleBindApplication(ActivityThread.java:5736)上的ContextImpl.java:2345(Activ)ityThread.java:197)在Android.os.Looper.loop(Looper.java)的android.app.Handler.dispatchMessage(Handler.java:106)上的android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1634) :193)在android.app.ActivityThread.main(ActivityThread.java:6642)at java.lang.reflect.Method.invoke(Native Method)at com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run(RuntimeInit.java) :493)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)2018-06-24 00:21:26.145 1667-1854 /?E/SurfaceFlinger:ro.sf.lcd_density必须定义为构建属性2018-06-24 00:21:26.233 1667-1703 /?E/SurfaceFlinger:ro.sf.lcd_density必须定义为构建属性2018-06-24 00:21:29.627 1796-1913 /?E/TaskPersister:访问最近目录的文件错误(目录不存在?).2018-06-24 00:21:30.087 11971-11971 /?E/AndroidRuntime:FATAL EXCEPTION:main进程:app.itsyour.elegantstocks,PID:11971 java.lang.IllegalArgumentException:指定为非null的参数为null:方法cdbhb,参数$ receiver at app.itsyour.elegantstocks.aba(Unknown资料来源:2)app.itsyour.elegantstocks.feature.navigator.ba $ aa(未知来源:24)at app.itsyour.elegantstocks.feature.navigator.baa(未知来源:13)at app.itsyour.elegantstocks.feature .navigator.baa(未知来源:2)androidx.recyclerview.widget.RecyclerView $ aa(未知来源:0)androidx.recyclerview.widget.RecyclerView $ ab(未知来源:29)androidx.recyclerview.widget.RecyclerView $ pa(未知来源:39)在androidx.recyclerview.widget.RecyclerView $ pa(未知来源:510)在androidx.recyclerview.widget.RecyclerView $ pa(未知来源:5)在androidx.recyclerview.widget.RecyclerView $ pc (未知来源:1)在androidx.recyclerview.widget.LinearLayoutManager $ ca(未知来源:11)在androidx.recyclerview.widget.LinearLayoutManager.a(未知的酸)ce:0)androidx.recyclerview.widget.LinearLayoutManager.a(未知来源:44)在androidx.recyclerview.widget.RecyclerView.O的androidx.recyclerview.widget.LinearLayoutManager.c(未知来源:371)处(未知来源: 42)在androidx.recyclerview.widget.RecyclerView.q(未知来源:41)androidx.recyclerview.widget.RecyclerView.onLayout(未知来源:5)在android.view.View.layout(View.java:20670)at在android.view.View.View的android.widget.FrameLayout.onLayout(FrameLayout.java:261)的android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)的android.view.ViewGroup.layout(ViewGroup.java:6194) .layout(View.java:20670)位于android.view.Viewout上的android.view.Loutout.onLayout(未知来源:66)的android.view.ViewGroup.layout(ViewGroup.java:6194) .java:20670)在Android.widget.FrameLayout.onLayout(FrameLayout.java:261)的android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)的android.view.ViewGroup.layout(ViewGroup.java:6194)在androi 在android.view上的android.view.reshout(浏位于androidx.coordinatorlayout.wout上的android..coout.Loutout.(android.Co.:606),androidx.coordinatorlayout.widget.CoordinatorLayout.(未知来源:143).在androidx.coordinatorlayout.widget.CoordinatorLayout上的android.viewout(View.java:61670). a(未知来源:32)在Android.view.ViewGroup.layout(ViewGroup.java)的android.view.View.layout(View.java:20670)的androidx.coordinatorlayout.widget.CoordinatorLayout.onLayout(未知来源:48) :6194)在android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)的android.widget.FrameLayout.onLayout(FrameLayout.java:261)在android.view.View.layout(View.java:20670)在android .view.ViewGroup.layout(ViewGroup.java:6194)在android.widget.LinearLayout.setChildFrame(LinearLayout.java:1812)在android.widget.LinearLayout.layoutVertical(LinearLayout.java:1656)在android.widget.LinearL 在Android.widget.FrameLayout.layoutChildren(FrameLayout)的android.view.View.layout(ViewGroup.java:6194)的android.view.View.layout(View.java:20670)的ayout.onLayout(LinearLayout.java:1565) .java:323)在android.view.View.Loutout(ViewLayout.java:261)android.view.View.layout(View.java:20670)的android.view.View.layout(ViewGroup.java:6194)上的android.widget.FrameLayout.onLayout(FrameLayout.java:261)在android.widget.LinearLayout.setChildFrame(LinearLayout.java:1812)在android.widget.LinearLayout.layoutVertical(LinearLayout.java:1656)在android.widget.LinearLayout.onLayout(LinearLayout.java:1565)在android.view. View.layout(View.java:20670)在android.view.ViewGroup.layout(ViewGroup.java:6194)在android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)在android.widget.FrameLayout.onLayout(的FrameLayout .java:261)在com.android.internal.policy.DecorView.onLayout(DecorView.java:753)在android.view.View.layout(View.java:20670)2018-06-24 00:21:30.087 …

android mdc-components androidx

18
推荐指数
1
解决办法
1万
查看次数

使用 Mdc3Theme 将 XML 主题应用到 Composable

我正在尝试将应用程序从 XML 布局迁移到 jetpack compose。由于该应用程序允许设置不同的用户主题,因此我想使用 XML 主题,直到所有文件都迁移完毕。但是,我就是无法让它发挥作用。

基本上我正在按照 https://material-components.github.io/material-components-android-compose-theme-adapter/#compose-material-3中的描述进行操作

我有一个带有定义的可组合项的简单活动:

import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import at.example.myapp.ui.composables.about.About
import com.google.android.material.composethemeadapter3.Mdc3Theme

class AboutActivity : ComponentActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        setTheme(MainActivity.getUserTheme(this))
        super.onCreate(savedInstanceState)
    
        setContent {
            // Use MdcTheme instead of MaterialTheme
            // Colors, typography, and shape have been read from the
            // View-based theme used in this Activity
    
            Mdc3Theme {
                About()
            }
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

setTheme(...) 正确加载主题,最顶部的颜色被正确设置,但没有其他。所有其他颜色、样式和字体均未在可组合项中设置。About() 可组合项本身没有什么特别的,只有一些文本、图像和一张卡片。

我正在导入以下版本:

    //JETPACK COMPOSE
    // Integration with activities
    implementation 'androidx.activity:activity-compose:1.4.0'
    // Compose Material Design …
Run Code Online (Sandbox Code Playgroud)

android mdc-components android-jetpack-compose

9
推荐指数
0
解决办法
1186
查看次数

MDCSnackbarFoundation类用法

我如何使用MDCSnackbarFoundation?使用MDCSnackbar

这个文档不够明确,无法得到一个想法. https://github.com/material-components/material-components-web/tree/master/packages/mdc-snackbar#using-the-foundation-class

这是我的代码,我需要为它绑定MDCSnackbarFoundation.

logger = new MDCSnackbar($selector[0]);

谢谢

javascript material-design material-components mdc-components material-components-web

8
推荐指数
1
解决办法
379
查看次数

Material Design Components和Polymer的Web组件有什么区别?

Material.io

https://material.io/网站(官方Google规范?),当我按照访问"Material Design UI"Web组件的路径时,我最终会在这里:

https://github.com/material-components/material-components-web/

聚合物项目

https://www.polymer-project.org/网站上,当我按照访问"Material Web Components"的路径时,我最终会在这里:

https://github.com/material-components/material-components-web-components

我不明白这些组件之间的区别,但我想将"官方"Google Web组件用于我正在创建的Web应用程序.

polymer material-design material-components mdc-components material-components-web

8
推荐指数
1
解决办法
948
查看次数

MDC Button MaterialShapeDrawable 奇怪的阴影和无波纹

本期附件类似,我按钮的角阴影看起来很狡猾。但是通过自定义边缘和圆角处理,按钮似乎失去了高度并且没有波纹/点击效果。知道我做错了什么吗?

在此处输入图片说明

材质版本为 1.1.0-alpha07

class CurvedEdgeTreatment (private val size: Float) : EdgeTreatment(), Cloneable {

    public override fun clone(): EdgeTreatment {
        return super<EdgeTreatment>.clone()
    }

    override fun getEdgePath(length: Float, center: Float, interpolation: Float, shapePath: ShapePath) {
        shapePath.quadToPoint(center, -size * interpolation, length, 0f)
    }
}

class ButtonActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_button)

        val shapeAppearanceModel = ShapeAppearanceModel().apply {
            setAllCorners(RoundedCornerTreatment(12.dpToPx(resources.displayMetrics).toFloat()))
            setAllEdges(CurvedEdgeTreatment(3.dpToPx(resources.displayMetrics).toFloat()))
        }

        val backgroundDrawable = MaterialShapeDrawable(shapeAppearanceModel).apply {
            setTint(ContextCompat.getColor(this@ButtonActivity, R.color.color_secondary))
            shadowCompatibilityMode = SHADOW_COMPAT_MODE_ALWAYS
            elevation = 12f
            setUseTintColorForShadow(true)
            paintStyle = Paint.Style.FILL …
Run Code Online (Sandbox Code Playgroud)

android android-button mdc-components

8
推荐指数
0
解决办法
595
查看次数

mdc-component 基础和适配器类的实际使用

我正在尝试使用 .angular4 项目创建mdc-componentsangular-cli。所以我使用 npm 命令安装了 moduled

npm install material-components-web
Run Code Online (Sandbox Code Playgroud)

这个安装了

"material-components-web": "^0.22.0"
Run Code Online (Sandbox Code Playgroud)

然后创建了一个包含滑块的 HTML 标记的组件

<div #slider class="mdc-slider" tabindex="0" role="slider" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0" aria-label="Select Value">
    <div class="mdc-slider__track-container">
        <div class="mdc-slider__track"></div>
    </div>
    <div class="mdc-slider__thumb-container">
        <svg class="mdc-slider__thumb" width="21" height="21">
            <circle cx="10.5" cy="10.5" r="7.875"></circle>
        </svg>
        <div class="mdc-slider__focus-ring"></div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

在 ts 端使用 ViewChild

 @ViewChild('slider') elSlider: ElementRef;
Run Code Online (Sandbox Code Playgroud)

并使用MDCSlider类包装此元素

let mdcSlider = new MDCSlider(this.elSlider.nativeElement);
Run Code Online (Sandbox Code Playgroud)

然后为文件中的同一个 mdc 组件导入 sassstyles.scss文件

@import '~@material/slider/mdc-slider';
Run Code Online (Sandbox Code Playgroud)

这在 UI 上呈现了一个漂亮的材质滑块组件,并且工作正常。

监听更改事件

mdcSlider.listen('MDCSlider:change', () => console.log("Value changed …
Run Code Online (Sandbox Code Playgroud)

angular mdc-components

7
推荐指数
1
解决办法
1140
查看次数

网页材料设计。如何设置 mdc.menu 的位置?

网页材料设计。如何设置 mdc.menu 的位置?

我会将 mdc 菜单从左上角移到右上角。距顶部 70 像素,距右侧 25 像素。

请看一下我的截图。如何更改元素样式。

请看一下我的js代码。我必须在哪里进行更改?在 css 中还是在 javascript 中?我对浏览器 chrome 进行了以下更改。

element.style {
    right: 25px;
    top: 70px;
}
Run Code Online (Sandbox Code Playgroud)

这是完整的 html 代码。

<!DOCTYPE html>
<html>
  <head>
    <title>App Bar</title>

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="msapplication-tap-highlight" content="no">
    <meta name="norobots" content="noindex, nofollow, noarchive">

    <link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
    <link rel="icon" href="favicon.ico" type="image/x-icon">

    <!-- import Material Icons from Google Fonts -->
    <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
    <link href="https://fonts.googleapis.com/css?family=Roboto+Mono|Roboto:400i" rel="stylesheet">
    <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,500" …
Run Code Online (Sandbox Code Playgroud)

javascript mdc mdc-components

7
推荐指数
1
解决办法
1134
查看次数

为什么我的 scss 文件中的 @use 在我的 Angular 9.1.0 项目中不起作用?

我正在将我的 Angular 8.2.14 项目更新到 Angular 9.1.0。到目前为止,我已经成功地使用 ng update 将所有文件迁移到最新的 Angular 发行版。但是,要使此更新成功,我还必须更新此项目中使用的库。这些库之一是“用于 AngularMaterial Web 组件”(@angular-mdc/web)。

这个库有一个入门指南,以便能够正确实现它。这涉及更改文件“angular.json”以设置以下内容:

"stylePreprocessorOptions": {
    "includePaths": [
        "node_modules/"
    ]
},
Run Code Online (Sandbox Code Playgroud)

本入门指南还涉及开始在我的 *.scss 文件中实现 @use 而不是 @import,以便使用的组件具有正确的样式。

然而,问题是这个@use 似乎不起作用。

例如,在入门指南中,示例声明需要将以下内容添加到 style.scss 文件中:

@use './styles/body';

@use '@material/theme' with (
    $primary: #6200ee,
    $secondary: #faab1a,
    $background: #fff,
);

// MDC Typography
@use '@material/typography/mdc-typography';

// MDC Button
@use './styles/button';

// Angular MDC
@use '@angular-mdc/theme/material';
Run Code Online (Sandbox Code Playgroud)

然后在 style/_body.scss 中创建文件时,我应该添加:

// Override user agent body margin for mdc-top-app-bar
body { …
Run Code Online (Sandbox Code Playgroud)

sass angular-cli angular mdc-components

7
推荐指数
1
解决办法
3762
查看次数

为什么 MDCSelect:change 不适用于材料设计的 javascript

为什么MDCSelect:change在附加所有选项之前调用它时不起作用

MDCSelect:change当我在附加列表后放置它时正在工作,UI 看起来不太好。

问题:如何MDCSelect:change在不损害 ui 外观的情况下工作。

当我洗牌那两行的代码时,它工作得很好

$('#select_dropdown').html(usersStr);

initializeSelect();
Run Code Online (Sandbox Code Playgroud)

select UI当您在任何地方或简单地单击外部时,上面的代码看起来不太好

为了更好地查看,我在这里创建了 codepen:https ://codepen.io/eabangalore/pen/poNmBpm ? editors = 1010

$('#select_dropdown').html(usersStr);

initializeSelect();
Run Code Online (Sandbox Code Playgroud)
var selectBoxMap = {};
function initializeSelect(){
       var mdcSelectList = document.querySelectorAll(' .mdc-select');
        if(mdcSelectList){
            [].forEach.call(mdcSelectList,function(el){
                var select = new mdc.select.MDCSelect(el);
                el.setAttribute('ripple-attached', true);
                var dropDownId = $(el).find('ul.mdc-list').attr('id');
                selectBoxMap[dropDownId] = select;
            });
        }

}


$(async function(){

  var results = await $.get('https://jsonplaceholder.typicode.com/users');
var usersStr = '';
for(var i = 0; i < results.length; i++){
    var …
Run Code Online (Sandbox Code Playgroud)

html javascript jquery material-design mdc-components

7
推荐指数
1
解决办法
330
查看次数

如何在 SwiftUI 中使用 Material Design 文本字段

我想在 SwiftUI 中使用 Material Design 文本字段组件。有一个为 UIKit 编写的 Material Design 文本字段组件,但没有一个为 SwiftUI 编写的。是否可以在 SwiftUI 中使用此 Material Design 文本字段组件?

mdc-components swiftui swiftui-form

6
推荐指数
1
解决办法
1259
查看次数