Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Custom design_layout_snackbar_include.xml layout file overrides standard library version and breaks its usage #109

Closed
c0state opened this issue Jan 5, 2017 · 3 comments

Comments

@c0state
Copy link
Contributor

c0state commented Jan 5, 2017

The version of design_layout_snackbar_include.xml in this library contains <merge> as the root tag which breaks the core Snackbar.make() function (for example, when used directly or indirectly through other 3rd party libraries) with the following error:
<merge /> can be used only with a valid ViewGroup root and attachToRoot=true

The latest version of design_layout_snackbar_include.xml in the android.support.design library (25.1.0) is:

<?xml version="1.0" encoding="utf-8"?>
<!--
  ~ Copyright (C) 2015 The Android Open Source Project
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~      http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
-->

<view
    xmlns:android="http://schemas.android.com/apk/res/android"
    class="android.support.design.internal.SnackbarContentLayout"
    android:theme="@style/ThemeOverlay.AppCompat.Dark"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom">

    <TextView
        android:id="@+id/snackbar_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:paddingTop="@dimen/design_snackbar_padding_vertical"
        android:paddingBottom="@dimen/design_snackbar_padding_vertical"
        android:paddingLeft="@dimen/design_snackbar_padding_horizontal"
        android:paddingRight="@dimen/design_snackbar_padding_horizontal"
        android:textAppearance="@style/TextAppearance.Design.Snackbar.Message"
        android:maxLines="@integer/design_snackbar_text_max_lines"
        android:layout_gravity="center_vertical|left|start"
        android:ellipsize="end"
        android:textAlignment="viewStart"/>

    <Button
        android:id="@+id/snackbar_action"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="@dimen/design_snackbar_extra_spacing_horizontal"
        android:layout_marginStart="@dimen/design_snackbar_extra_spacing_horizontal"
        android:layout_gravity="center_vertical|right|end"
        android:minWidth="48dp"
        android:visibility="gone"
        android:textColor="?attr/colorAccent"
        style="?attr/borderlessButtonStyle"/>

</view>

Is it necessary to provide a custom version of this layout in this project, and if so, is the fix simply to change the root to a <view> as in the core library?

@Blankj
Copy link
Owner

Blankj commented Jan 6, 2017

Thx for ur pr :-)

@Blankj Blankj closed this as completed Jan 6, 2017
@Blankj Blankj reopened this Jan 6, 2017
@c0state
Copy link
Contributor Author

c0state commented Jan 6, 2017

For reference, this site--http://www.materialdoc.com/snackbar/--provides an example of customizing the Snackbar layout. I'll try to provide a PR with this implementation.

@Blankj
Copy link
Owner

Blankj commented Jan 6, 2017

👍

@Blankj Blankj closed this as completed Jan 24, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants