Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使ConstraintLayout(androidx.ConstraintLayout.widget)与MaterialButton(com.google.android.material.button)一起工作?_Android_Xml_Android Layout_Material Design - Fatal编程技术网

如何使ConstraintLayout(androidx.ConstraintLayout.widget)与MaterialButton(com.google.android.material.button)一起工作?

如何使ConstraintLayout(androidx.ConstraintLayout.widget)与MaterialButton(com.google.android.material.button)一起工作?,android,xml,android-layout,material-design,Android,Xml,Android Layout,Material Design,问题陈述 我在androidx.constraintlayout.widget.constraintlayout内使用com.google.android.material.button.MaterialButton,其中约束布局无法部署或检测材质按钮的约束 代码 截图 物料按钮不可见 更新 渲染时引发的错误 java.lang.IllegalArgumentException: java.lang。ClassCastException@207d8929在 sun.reflect.Generat

问题陈述

我在androidx.constraintlayout.widget.constraintlayout内使用com.google.android.material.button.MaterialButton,其中约束布局无法部署或检测材质按钮的约束

代码

截图

物料按钮不可见

更新

渲染时引发的错误

java.lang.IllegalArgumentException: java.lang。ClassCastException@207d8929在 sun.reflect.GeneratedMethodAccessor226.invokeUnknown源位于 sun.reflect.DelegatingMethodAccessorImpl.invokeDelegatingMethodAccessorImpl.java:43 java:498 at android.animation.PropertyValuesHolder_Delegate.callMethodPropertyValuesHolder_Delegate.java:108 在 android.animation.PropertyValuesHolder_Delegate.nCallFloatMethodPropertyValuesHolder_Delegate.java:143 在 android.animation.PropertyValuesHolder.nCallFloatMethodPropertyValuesHolder.java 在 android.animation.PropertyValuesHolder.access$400PropertyValuesHolder.java:38 在 android.animation.PropertyValuesHolder$FloatPropertyValuesHolder.setAnimatedValuePropertyValuesHolder.java:1387 在 animation.ObjectAnimator.animateValueObjectAnimator.java:990 在 android.animation.ValueAnimator.animateBasedOnTimeValueAnimator.java:1339 在 android.animation.ValueAnimator.doAnimationFrameValueAnimator.java:1471 在 android.animation.ValueAnimator.pulseAnimationFrameValueAnimator.java:1490 在android.animation.AnimatorSet.pulseFrameAnimatorSet.java:1163 在 android.animation.AnimatorSet.handleAnimationEventsAnimatorSet.java:1146 在 android.animation.AnimatorSet.doAnimationFrameAnimatorSet.java:1046 在 android.animation.AnimationHandler.doAnimationFrameAnimationHandler.java:146 在 android.animation.AnimationHandler.access$100AnimationHandler.java:37 在 animation.AnimationHandler$1.doFrameAnimationHandler.java:54 在 android.view.Choreographer$CallbackRecord.runChoreographer.java:947 在android.view.Choreographer.docallbackshoreographer.java:761 at android.view.Choreographer\u Delegate.doFrameChoreographer\u Delegate.java:66 在 com.android.layoutlib.bridge.impl.RenderSessionImpl.RenderandBuildResultTrenderSessionImpl.java:563 在 java:425 在 com.android.layoutlib.bridge.BridgeRenderSession.renderBridgeRenderSession.java:120 在 com.android.ide.common.rendering.api.RenderSession.renderRenderSession.java:151 在 com.android.ide.common.rendering.api.RenderSession.renderRenderSession.java:133 在 com.android.tools.idea.rendering.RenderTask.lambda$null$8RenderTask.java:755 在 java.util.concurrent.CompletableFuture$AsyncSupply.runCompletableFuture.java:1590 在 java.util.concurrent.ThreadPoolExecutor.runWorkerThreadPoolExecutor.java:1142 在 java.util.concurrent.ThreadPoolExecutor$Worker.runThreadPoolExecutor.java:617 java:745


我已经验证了一切看起来都很好,它的工作以及。正如您在附件中看到的,这是您上面提到的代码

请确保已将依赖项添加到gradle文件中。如果是,那么这里的一些更正常工作的代码中可能存在一些问题,即按钮上的重叠。所以你需要签入代码

实现'com.google.android.material:material:1.0.0'


在其他计算机上测试代码后,发现错误的原因如下-

系统支持不足-用于编码的系统无法提供足够的资源来高效渲染视图,并且预览无法工作

Android Studio效率-在低容量系统上,Android Studio无法在渲染时很好地管理依赖项,因此抛出错误java.lang.IllegalArgumentException:java.lang.ClassCastException

解决方案

最佳解决方案-根据文档使用推荐的系统配置

鸵鸟解决方案-每次对UI进行更改时都运行该应用程序,以查看其实际工作情况,而不依赖于预览


请在布局文件中显示所有代码为什么有一个列表?它不在您的xml代码中!我的假设是列表/回收视图隐藏了您的按钮用完整代码更新了代码您是否正确同步了项目?请再试一次,然后检查。抱歉,但不幸的是,错误原因或解决方案不同,并且发生在罕见和特定的情况下。我已经在下面提供了原因和解决方案。更新了完整代码,并且已经使用了实现'com.google.android.material:material:1.0.0'。答案已经更新,并且运行良好。你运行过代码设备或模拟器吗?我希望它工作正常。你的回答是对的,但不幸的是
错误或解决方案的原因不同,并且在罕见和特定的情况下发生。请在您的recyclerview应用程序中添加一个约束:layout_constraintBottom_toTopOf=@+id/FolderViewButtom,以便您的按钮不会隐藏在recyclerview后面。对于崩溃,您将面临checkout link@VijayPatole,无需添加此项,因为按钮位于最后一个,这意味着它将始终位于布局的顶部。
   <?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=".views.screens.VeritasFolderReadSelectionScreen">

    <androidx.appcompat.widget.Toolbar
        android:id="@+id/folderSelectToolbar"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:background="@color/startGrad"
        android:minHeight="?attr/actionBarSize"
        android:theme="@style/AppBarOverlay"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/folderSelectMessage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="4dp"
        android:text="Select folders you want PeerPots to read"
        android:textSize="16sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@id/folderSelectToolbar"/>

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/folderRecyclerView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="8dp"
        app:layout_constraintTop_toBottomOf="@id/folderSelectMessage"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"/>

    <!-- Following code not working -->
    <com.google.android.material.button.MaterialButton
        android:id="@+id/folderViewButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Done"
        android:textSize="12sp"
        android:layout_marginBottom="16dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"/>

</androidx.constraintlayout.widget.ConstraintLayout>