web-dev-qa-db-ja.com

coordinatorlayoutの重複するビュー

コードは以下のとおりです。フラグメントが読み込まれると、ツールバーとフローティングアクションバーが覆われます。どうすればこれを処理できますか?ツールバーを表示したい。 coordinatorlayoutに重複があるようです。このようなさまざまな問題を確認しました。誰も私の質問に答えていないようです

    <?xml version="1.0" encoding="utf-8"?>
    <Android.support.design.widget.CoordinatorLayout
    Android:layout_width="fill_parent"
    Android:layout_height="wrap_content"
    Android:padding="@dimen/activity_horizontal_margin"
    Android:orientation="vertical"
    tools:context="com.example.sammybobo.moglis.MoGLISMaps"
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:Android="http://schemas.Android.com/apk/res-auto"
    xmlns:tools="http://schemas.Android.com/tools">

    <Android.support.v7.widget.Toolbar
        Android:layout_width="fill_parent"
        xmlns:Android="http://schemas.Android.com/apk/res/Android"
        Android:layout_height="?attr/actionBarSize"
        Android:id="@+id/toolbar"
        Android:elevation="4dp"
        Android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
        Android:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>

    <Android.support.design.widget.FloatingActionButton
        Android:id = "@+id/fab"
        Android:layout_height="wrap_content"
        Android:layout_width="wrap_content"
        Android:src = "@Android:drawable/ic_input_add"
        Android:layout_gravity = "bottom|end"
        app:fabSize = "mini">

    </Android.support.design.widget.FloatingActionButton>

    <fragment
        Android:layout_width="match_parent"
        Android:layout_height="200dp"
        Android:id="@+id/main_map"
        Android:name="com.google.Android.gms.maps.SupportMapFragment"
        xmlns:Android="http://schemas.Android.com/apk/res/Android"
        tools:context = "com.example.sammybobo.moglis.MoGLISMaps"
        xmlns:tools="http://schemas.Android.com/tools"
        />
 <LinearLayout
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:background="#fff"
        Android:layout_gravity = "bottom"
        >
        <Button
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:layout_weight="1"
            Android:text="My location"
            Android:onClick="observe"/>

        <Button
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:layout_weight="1"
            Android:text = "Friends"/>

        <Button
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:layout_weight="1"
            Android:text = "settings"/>
    </LinearLayout>
    </Android.support.design.widget.CoordinatorLayout>
11
Samuel Agbede

これは、コーディネーターレイアウト内では、別のビューに対して1つのビューを設定できないためです。親との関係でのみ持つことができます。以下のレイアウトでお試しください。

<Android.support.design.widget.CoordinatorLayout
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:Android="http://schemas.Android.com/apk/res-auto"
    xmlns:tools="http://schemas.Android.com/tools"
    Android:layout_height="wrap_content"
    Android:layout_width="fill_parent"
    Android:orientation="vertical"
    Android:padding="@dimen/activity_horizontal_margin"
    tools:context="com.example.sammybobo.moglis.MoGLISMaps">

    <RelativeLayout
        Android:layout_height="wrap_content"
        Android:layout_width="fill_parent">

        <Android.support.v7.widget.Toolbar
            xmlns:Android="http://schemas.Android.com/apk/res/Android"
            Android:id="@+id/toolbar"
            Android:layout_width="fill_parent"
            Android:layout_height="?attr/actionBarSize"
            Android:elevation="4dp"
            Android:popupTheme="@style/ThemeOverlay.AppCompat.Light"
            Android:theme="@style/ThemeOverlay.AppCompat.ActionBar"/>

        <fragment
            xmlns:Android="http://schemas.Android.com/apk/res/Android"
            xmlns:tools="http://schemas.Android.com/tools"
            Android:id="@+id/main_map"
            Android:name="com.google.Android.gms.maps.SupportMapFragment"
            Android:layout_width="match_parent"
            Android:layout_height="200dp"
            Android:layout_below="@+id/toolbar"
            tools:context="com.example.sammybobo.moglis.MoGLISMaps"
            />

    </RelativeLayout>


    <LinearLayout
        Android:background="#fff"
        Android:layout_gravity="bottom"
        Android:layout_height="wrap_content"
        Android:layout_width="fill_parent"
        >

        <Button
            Android:layout_height="wrap_content"
            Android:layout_weight="1"
            Android:layout_width="wrap_content"
            Android:onClick="observe"
            Android:text="My location"/>

        <Button
            Android:layout_height="wrap_content"
            Android:layout_weight="1"
            Android:layout_width="wrap_content"
            Android:text="Friends"/>

        <Button
            Android:layout_height="wrap_content"
            Android:layout_weight="1"
            Android:layout_width="wrap_content"
            Android:text="settings"/>
    </LinearLayout>

    <Android.support.design.widget.FloatingActionButton
        app:fabSize="mini"
        Android:id="@+id/fab"
        Android:layout_gravity="bottom|end"
        Android:layout_height="wrap_content"
        Android:layout_width="wrap_content"
        Android:src="@Android:drawable/ic_input_add">

    </Android.support.design.widget.FloatingActionButton>

</Android.support.design.widget.CoordinatorLayout>

下の線形レイアウトもフラグメントと重ならないようにする場合は、相対レイアウト内に配置し、線形レイアウトの上にフラグメントがあることを確認してください。

9
Ragesh Ramesh

すべてのビューをLinearLayout内にラップするだけで、重複を防ぐこともできます。

0
George