XML样式完全没有效果?

时间:2019-12-24 13:08:19

标签: android xml

我在这方面相对较新,并且正在关注基本计算器应用的YouTube教程。 但是我注意到style = "@styles/button_calculator"根本没有用。它应用于按钮,并且在编译后出现此错误:Missing attribute: layout_height(对于每个按钮),但实际上是样式。

我的目标是获得与教程相同的结果。我现在在互联网上搜索了很多...

样式XML:styles.xml

<?xml version="1.0" encoding="utf-8" ?>
<resources>
  <style name="button_calculator">
    <item name="android:layout_width">0dp</item>
    <item name="android:layout_height">0dp</item>
    <item name="layout_rowWeight">1</item>
    <item name="layout_columnWeight">1</item>
    <item name="android:textSize">25dp</item>
    <item name="android:ScaleY">1</item>
    <item name="android:onClick">ButtonClick</item>
  </style>
</resources>

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <HorizontalScrollView
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1">
        <TextView
            android:id="@+id/calculator_text_view"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:padding="10dp"
            android:textSize="50sp"
            android:text="123" />
    </HorizontalScrollView>
    <android.support.v7.widget.GridLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="4"
        app:orientation="horizontal"
        app:rowCount="5"
        app:columnCount="4">
        <Button
            style="@styles/button_calculator"
            app:layout_columnSpan="4"
            android:text="DEL" />
        <Button
            style="@styles/button_calculator"
            android:text="7" />

        // ++ More Buttons here ++

        <Button
            style="@styles/button_calculator"
            android:text="+" />
    </android.support.v7.widget.GridLayout>
</LinearLayout>

2 个答案:

答案 0 :(得分:0)

您错过了样式XML中的<resources>起始标记。您的错误本身就是说资源文件未成功编译。

使用以下代码替换您的代码:

<?xml version="1.0" encoding="utf-8" ?>
<resources>
  <style name="button_calculator">
    <item name="android:layout_width">0dp</item>
    <item name="android:layout_height">0dp</item>
    <item name="layout_rowWeight">1</item>
    <item name="layout_columnWeight">1</item>
    <item name="android:textSize">25dp</item>
    <item name="android:ScaleY">1</item>
    <item name="android:onClick">ButtonClick</item>
  </style>
</resources>

答案 1 :(得分:0)

尝试一下 将应用程序从gridlayout更改为android

<android.support.v7.widget.GridLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="4"
        android:orientation="horizontal"
        android:rowCount="5"
        android:columnCount="4">

在layout_columnWeight中添加android

<style name="button_calculator">
    <item name="android:layout_width">0dp</item>
    <item name="android:layout_height">0dp</item>
    <item name="android:layout_rowWeight">1</item>
    <item name="android:layout_columnWeight">1</item>
    <item name="android:textSize">25dp</item>
    <item name="android:ScaleY">1</item>
    <item name="android:onClick">ButtonClick</item>
  </style>

并在按钮处将应用程序更改为android,将样式更改为样式

<Button
        style="@style/button_calculator"
        android:layout_columnSpan="4"
        android:text="DEL" />

如果不受影响,请尝试重建项目 希望有帮助