我在这方面相对较新,并且正在关注基本计算器应用的YouTube教程。
但是我注意到style = "@styles/button_calculator"
根本没有用。它应用于按钮,并且在编译后出现此错误:Missing attribute: layout_height
(对于每个按钮),但实际上是样式。
我的目标是获得与教程相同的结果。我现在在互联网上搜索了很多...
Resources/values
xml代码与视频(site with code & Video)中的xml代码相同
++请参见此图片以获取概述: Image: how it looks vs how it should look ++
样式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>
答案 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" />
如果不受影响,请尝试重建项目 希望有帮助