【问题标题】:floating action button exception Android浮动操作按钮异常Android
【发布时间】:2015-12-05 22:55:10
【问题描述】:

我需要你的帮助。

我在 android 上遇到了浮动操作按钮 (FAB) 的问题。

我想将地图(谷歌地图)作为片段(android studio 的模板)并在地图的右下角添加一个 FAB(如地图应用程序)。

这是在我的手机上编译和启动,但在地图显示之前,异常。

我有谷歌地图 API 的密钥(地图只能正常工作)。

在 gradle 中:compile 'com.android.support:appcompat-v7:23.0.1' compile 'com.android.support:design:23.0.1'

所以我可以添加我的 activity_map.xml :

这里是我的 xml 活动: `

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="16dp"
        android:clickable="true"
        android:src="@mipmap/ic_launcher"
        app:layout_anchor="@id/map"
        app:layout_anchorGravity="bottom|right|end"/>

`

我已经尝试使用片段中的按钮,具有相对布局...

setContentView(R.layout.activity_maps) 上的应用程序在读取 xml 文件时崩溃。

这里是我的活动代码: `公共类 MapsActivity 扩展 FragmentActivity {

private GoogleMap mMap; // Might be null if Google Play services APK is not available.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_maps);
    FloatingActionButton floatingActionButton = (FloatingActionButton) findViewById(R.id.fab);
    floatingActionButton.show();
    setUpMapIfNeeded();
    floatingActionButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast toast = Toast.makeText(getApplicationContext(), "i click on FAB", Toast.LENGTH_SHORT);
            toast.show();
        }
    });
}`

这里是例外:

`java.lang.RuntimeException: Unable to start activity ComponentInfo{io.evenear.evenear/io.evenear.evenear.MapsActivity}: android.view.InflateException: Binary XML file line #10: Error inflating class android.support.design.widget.FloatingActionButton
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)`

【问题讨论】:

    标签: android google-maps android-fragments floating-action-button


    【解决方案1】:
        @Override
        public void onClick(View v) {
            Toast toast = Toast.makeText(getApplicationContext(), "i click on FAB", Toast.LENGTH_SHORT);
            toast.show();
        }
    

    这个方法应该远离onCreate () { ... }

    【讨论】:

      【解决方案2】:

      这是 appcompact 版本的问题 如下更改 Gradle,立即进行同步,并确保同步成功且没有错误。

       compile 'com.android.support:support-v4:22.0.0'
       compile 'com.android.support:appcompat-v7:22.0.0'
      

      【讨论】:

        【解决方案3】:

        MapsActivity 更改为扩展AppCompatActivity 而不是FragmentActivity,并确保它使用Theme.AppCompat 主题。这将允许您使用支持库小部件

        documentation

        【讨论】:

        • 是的,谢谢,我尝试制作 AppCompatActivity 但对于主题,我不知道在哪里?在 style.xml 中?因为我没有 Theme.AppCompat,IDE 以红色突出显示了我
        • 是的,在你的styles.xml中developer.android.com/training/material/…
        • 你解决了吗?
        • 是的,我做到了。我更改了主题,但我第一次没有找到它,因为我在“android:Theme”中搜索但它只是(theme.AppCompat ....)
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-11-08
        • 2015-08-20
        • 2023-03-15
        • 2015-07-19
        • 2015-06-25
        • 2015-01-11
        相关资源
        最近更新 更多