【问题标题】:Custom Xml file's functionality is not implementing in activity_main.xml自定义 XML 文件的功能未在 activity_main.xml 中实现
【发布时间】:2021-01-04 05:39:20
【问题描述】:

我是 android 开发的新手,我创建了一个名为“round_btn_bg.xml”的 xml 文件,我只是在其中设置了按钮的样式,但是当我在 activity_main.xml 中使用这个 xml 文件时,按钮的功能未在应用中加载...

这里是“round_btn_bg.xml”的代码

<?xml version="1.0" encoding="utf-8"?>
<shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android">

    <solid android:color="@color/colorAccent"/>
    <corners android:radius="60dp"/>
</shape> 

下面是“actvity_main.xml”的代码

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
    android:background="@color/colorBlack"
    android:id="@+id/mainActivity_RL"
    tools:context=".MainActivity">
<ImageView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/mainActivity_BackgroundIV"
    android:src="@drawable/backgroundconnecteach"
    android:scaleType="centerCrop"
    android:alpha=".6"/>

    <ImageView
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:id="@+id/mainActivity_logoIV"
        android:src="@drawable/logo"
        android:layout_alignParentTop="true"
        android:layout_centerInParent="true"
        android:layout_marginTop="160dp"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/mainActivity_TagLineTV"
        android:text="@string/get_started_tag_line"
        android:textColor="@color/colorWhite"
        android:textStyle="bold"
        android:layout_centerInParent="true"
        android:layout_below="@id/mainActivity_logoIV"/>
    
    <Button
        style="@drawable/round_btn_bg"
        android:id="@+id/mainActivity_MoveBtn"
        android:layout_width="168dp"
        android:layout_height="40dp"
        android:layout_below="@id/mainActivity_TagLineTV"
        android:layout_centerInParent="true"
        android:layout_marginTop="8dp"
        android:background="@drawable/round_btn_bg"
        android:text="@string/get_started_btn" />


</RelativeLayout>

【问题讨论】:

    标签: java android android-layout


    【解决方案1】:

    在您声明的 Button 中,您不能将样式设置为可绘制资源。它必须指向styles.xml 中定义的样式。您将其设置为背景是正确的。

    从 XML 中的 Button 中删除以下行

    style="@drawable/round_btn_bg"
    

    【讨论】:

    • 背景样式仍未应用,当我将鼠标悬停在“@drawable/round_btn_bg”上时,我得到 Empty StateList @drawable/round_btn_bg => round_btn_bg.xml 错误 ...
    【解决方案2】:

    为此使用背景属性.. 第一次在可绘制文件中创建您的设计

    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true">
        <shape android:shape="oval">
            <solid android:color="#800013"/>
            <corners android:radius="5dp"/>
        </shape>
    </item>
    
    <item>
        <shape android:shape="oval">
            <solid android:color="#AA3B18"/>
            <corners android:radius="5dp"/>
        </shape>
    </item>
    
    然后将此添加为任何小部件(如按钮)的背景
    background="@drawable/round_btn_bg"
    

    【讨论】:

    • 背景样式仍未应用,当我将鼠标悬停在“@drawable/round_btn_bg”上时,我得到 Empty StateList @drawable/round_btn_bg => round_btn_bg.xml 错误 ...
    【解决方案3】:
    <Button
            android:id="@+id/mainActivity_MoveBtn"
            android:layout_width="168dp"
            android:layout_height="40dp"
            android:layout_below="@id/mainActivity_TagLineTV"
            android:layout_centerInParent="true"
            android:layout_marginTop="8dp"
            android:background="@drawable/round_btn_bg"
            android:text="@string/get_started_btn" />
    

    用这个替换Button 代码。我认为它会起作用

    【讨论】:

    • 背景样式仍未应用,当我将鼠标悬停在“@drawable/round_btn_bg”上时,我得到 Empty StateList @drawable/round_btn_bg => round_btn_bg.xml 错误 ...
    • 只需在 res>values>styles.xml 中用 AppCompat 替换 MaterialComponents
    • 那里没有styles.xml
    • 你有themes.xml 吗?
    • themes.xml里面可以找到样式
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多