浮动操作按钮异常Android

时间:2015-09-09 20:27:45

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

我需要你的帮助。

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

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

这是在我的手机上编译和启动,但即使在地图显示之前,例外。

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

in 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文件时。

这里我的活动代码: `public class 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)`

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:-1)

    @Override
    public void onClick(View v) {
        Toast toast = Toast.makeText(getApplicationContext(), "i click on FAB", Toast.LENGTH_SHORT);
        toast.show();
    }

此方法应该不在onCreate () { ... }

之内