简体   繁体   English

如何在对话框活动中实现浮动操作按钮

[英]How to implement a floating action button in a dialog activity

I want my application to look somewhat like the starbuck app.我希望我的应用程序看起来有点像星巴克应用程序。

在此处输入图片说明

I want to start with the floating action button.我想从浮动操作按钮开始。 I creating the activity layout as follows我创建的活动布局如下

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.FloatingActionButton
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fabPuntos"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|bottom"
android:layout_margin="20dp"
android:src="@android:color/transparent"
app:backgroundTint="#CCCC00" >

My java code我的Java代码

public class PuntosActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_puntos);
}

} }

and I have declared the activity in the manifest like this我已经在清单中声明了这样的活动

<activity android:name=".PuntosActivity"
        android:label="TUS PUNTOS"
        android:theme="@android:style/Theme.Dialog" />

I got the following error.我收到以下错误。 What is the matter?有什么事?

08-15 00:17:05.066 9930-9930/com.cerveceriacc.clientappv2 E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.cerveceriacc.clientappv2, PID: 9930
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.cerveceriacc.clientappv2/com.cerveceriacc.clientappv2.PuntosActivity}: android.view.InflateException: Binary XML file line #11: Binary XML file line #11: Error inflating class <unknown>
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2957)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3032)
    at android.app.ActivityThread.-wrap11(Unknown Source:0)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696)
    at android.os.Handler.dispatchMessage(Handler.java:105)
    at android.os.Looper.loop(Looper.java:164)
    at android.app.ActivityThread.main(ActivityThread.java:6944)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
 Caused by: android.view.InflateException: Binary XML file line #11: Binary XML file line #11: Error inflating class <unknown>
 Caused by: android.view.InflateException: Binary XML file line #11: Error inflating class <unknown>
 Caused by: java.lang.reflect.InvocationTargetException
    at java.lang.reflect.Constructor.newInstance0(Native Method)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:334)
    at android.view.LayoutInflater.createView(LayoutInflater.java:647)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:790)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
    at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:461)
    at android.app.Activity.setContentView(Activity.java:2737)
    at com.cerveceriacc.clientappv2.PuntosActivity.onCreate(PuntosActivity.java:12)
    at android.app.Activity.performCreate(Activity.java:7174)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1220)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2910)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3032)
    at android.app.ActivityThread.-wrap11(Unknown Source:0)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696)
    at android.os.Handler.dispatchMessage(Handler.java:105)
    at android.os.Looper.loop(Looper.java:164)
    at android.app.ActivityThread.main(ActivityThread.java:6944)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
 Caused by: java.lang.IllegalArgumentException: You need to use a Theme.AppCompat theme (or descendant) with the design library.
    at android.support.design.widget.ThemeUtils.checkAppCompatTheme(ThemeUtils.java:33)
    at android.support.design.widget.FloatingActionButton.<init>(FloatingActionButton.java:164)
    at android.support.design.widget.FloatingActionButton.<init>(FloatingActionButton.java:158)
    at java.lang.reflect.Constructor.newInstance0(Native Method) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:334) 
    at android.view.LayoutInflater.createView(LayoutInflater.java:647) 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:790) 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
    at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:461) 
    at android.app.Activity.setContentView(Activity.java:2737) 
    at com.cerveceriacc.clientappv2.PuntosActivity.onCreate(PuntosActivity.java:12) 
    at android.app.Activity.performCreate(Activity.java:7174) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1220) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2910) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3032) 
    at android.app.ActivityThread.-wrap11(Unknown Source:0) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696) 
    at android.os.Handler.dispatchMessage(Handler.java:105) 
    at android.os.Looper.loop(Looper.java:164) 
    at android.app.ActivityThread.main(ActivityThread.java:6944) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374) 

Thank you谢谢

From your Logcat从你的 Logcat

Caused by: java.lang.IllegalArgumentException: You need to use a Theme.AppCompat theme (or descendant) with the design library.引起:java.lang.IllegalArgumentException:您需要使用带有设计库的 Theme.AppCompat 主题(或后代)。

This describes your problem.这描述了您的问题。

In your PuntosActivity you have used Theme Theme.Dialog which is not AppCompat Theme.在您的PuntosActivity 中,您使用了不是 AppCompat 主题的 Theme Theme.Dialog Try using any AppCompat theme.尝试使用任何 AppCompat 主题。

Use Theme.AppCompat.Light.Dialog as Activity Theme.使用Theme.AppCompat.Light.Dialog作为活动主题。

<activity android:name=".PuntosActivity"
    android:label="TUS PUNTOS"
    android:theme="@style/Theme.AppCompat.Light.Dialog" />

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何将Cast按钮实现为浮动操作按钮? - How to implement Cast button as Floating Action Button? 活动中的浮动操作按钮 - 如何锚定到片段中的recyclerview? - Floating Action Button in an Activity - how to anchor to a recyclerview in a fragment? 如何从自动生成的滚动活动中删除浮动操作按钮 - How to remove Floating Action Button from auto generated Scrolling Activity 如何使用android活动过渡动画浮动动作按钮? - How to animate floating action button using android activity transition? RxBinding4 问题,不确定如何实现对浮动操作按钮的点击 - RxBinding4 issue, unsure how to implement clicks on a floating action button 如何在扩展浮动操作按钮单击上实现菜单显示 android - How to implement Menu display on Extended Floating Action Button click android Android-对话框片段顶部的浮动操作按钮 - Android - Floating action button on top of Dialog Fragment 将浮动操作按钮转换为Android中的活动 - Transform a Floating action button into an activity in Android 动画化浮动动作按钮活动过渡 - Animating a Floating Action Button Activity Transition 如何删除浮动操作按钮 - How to remove the floating action button
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM