簡體   English   中英

浮動操作按鈕異常Android

[英]floating action button exception Android

我需要你的幫助。

我在Android上的浮動操作按鈕(FAB)有問題。

我想將地圖(谷歌地圖)作為片段(android studio的模板),並在地圖的右下角添加一個FAB(例如maps應用)。

該代碼可以在我的手機上編譯並啟動,但即使在地圖顯示之前,也是如此。

我有google maps 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)`

更改MapsActivity以擴展AppCompatActivity而不是FragmentActivity ,並確保它使用Theme.AppCompat主題。 這將允許您使用支持庫小部件

文件資料

其appcompact版本的問題請按以下步驟更改Gradle,立即進行同步,並確保同步成功且沒有錯誤。

 compile 'com.android.support:support-v4:22.0.0'
 compile 'com.android.support:appcompat-v7:22.0.0'
    @Override
    public void onClick(View v) {
        Toast toast = Toast.makeText(getApplicationContext(), "i click on FAB", Toast.LENGTH_SHORT);
        toast.show();
    }

此方法應遠離onCreate () { ... }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM