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

[CollapsingToolbarLayout] Allow multiple lines of text in expanded state #413

15 changes: 15 additions & 0 deletions catalog/java/io/material/catalog/bottomsheet/res/values/styles.xml
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,19 @@
<item name="android:drawablePadding">8dp</item>
<item name="android:background">?attr/selectableItemBackground</item>
</style>

<style name="TextAppearance.Test.CollapsingToolbar.Expanded" parent="">
<item name="fontFamily">serif</item>
<item name="android:fontFamily">serif</item>
<item name="android:textColor">@android:color/white</item>
<item name="android:textSize">28sp</item>
<item name="android:textStyle">italic</item>
</style>

<style name="TextAppearance.Test.CollapsingToolbar.Collapsed" parent="">
<item name="fontFamily">monospace</item>
<item name="android:fontFamily">monospace</item>
<item name="android:textSize">20sp</item>
<item name="android:textColor">@android:color/holo_blue_bright</item>
</style>
</resources>
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
/*
* Copyright 2017 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
*
* https://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.
*/

package io.material.catalog.topappbar;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import io.material.catalog.R;
import io.material.catalog.feature.DemoFragment;

/** A fragment that displays a collapsing Top App Bar demo for the Catalog app. */
public class TopAppBarCollapsingMultilineDemoFragment extends DemoFragment {

@Override
public View onCreateDemoView(
LayoutInflater layoutInflater, @Nullable ViewGroup viewGroup, @Nullable Bundle bundle) {
View view =
layoutInflater.inflate(R.layout.cat_topappbar_collapsing_multiline_fragment, viewGroup,
false);

Toolbar toolbar = view.findViewById(R.id.toolbar);
AppCompatActivity activity = (AppCompatActivity) getActivity();
activity.setSupportActionBar(toolbar);

return view;
}

@Override
public boolean shouldShowDefaultDemoActionBar() {
return false;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,13 @@ public Fragment createFragment() {
return new TopAppBarCollapsingDemoFragment();
}
});
additionalDemos.add(
new Demo(R.string.cat_topappbar_collapsing_multiline_title) {
@Override
public Fragment createFragment() {
return new TopAppBarCollapsingMultilineDemoFragment();
}
});
additionalDemos.add(getToolbarDemo());
additionalDemos.addAll(getActionBarDemos());
return additionalDemos;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,8 @@
android:id="@+id/collapsingtoolbarlayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:collapsedTitleTextAppearance="?attr/textAppearanceHeadline6"
app:expandedTitleGravity="bottom"
app:expandedTitleMarginBottom="24dp"
app:expandedTitleMarginStart="16dp"
app:expandedTitleTextAppearance="?attr/textAppearanceHeadline5"
app:collapsedTitleTextAppearance="@style/TextAppearance.Test.CollapsingToolbar.Collapsed"
app:expandedTitleTextAppearance="@style/TextAppearance.Test.CollapsingToolbar.Expanded"
app:layout_scrollFlags="scroll|exitUntilCollapsed|snap">

<androidx.appcompat.widget.Toolbar
Expand All @@ -46,7 +43,7 @@
android:layout_height="?attr/actionBarSize"
android:elevation="0dp"
app:layout_collapseMode="pin"
app:title="@string/cat_topappbar_collapsing_demo_toolbar_title"/>
app:title="Lorem Ipsum"/>
</com.google.android.material.appbar.CollapsingToolbarLayout>
</com.google.android.material.appbar.AppBarLayout>

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2017 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

https://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.
-->
<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/coordinator"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">

<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appbarlayout"
android:layout_width="match_parent"
android:layout_height="@dimen/cat_topappbar_tall_toolbar_height"
android:fitsSystemWindows="true"
android:theme="@style/ThemeOverlay.Catalog.AppBarLayout">

<com.google.android.material.appbar.CollapsingToolbarLayout
android:id="@+id/collapsingtoolbarlayout"
style="?attr/catalogToolbarStyle"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:collapsedTitleTextAppearance="?attr/textAppearanceHeadline6"
app:expandedTitleGravity="bottom"
app:expandedTitleMarginBottom="24dp"
app:expandedTitleMarginStart="16dp"
app:expandedTitleTextAppearance="?attr/textAppearanceHeadline5"
app:multiline="true"
app:maxLines="3"
app:layout_scrollFlags="scroll|exitUntilCollapsed|snap">

<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
style="?attr/catalogToolbarWithCloseButtonStyle"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:elevation="0dp"
app:layout_collapseMode="pin"
app:title="@string/cat_topappbar_collapsing_multiline_demo_toolbar_title"/>
</com.google.android.material.appbar.CollapsingToolbarLayout>
</com.google.android.material.appbar.AppBarLayout>

<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">

<include layout="@layout/cat_topappbar_filler_text_view"/>
</androidx.core.widget.NestedScrollView>

</androidx.coordinatorlayout.widget.CoordinatorLayout>
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
<string name="cat_topappbar_scrolling_title">Scrolling Demo</string>
<string name="cat_topappbar_scrolling_transparent_title">Scrolling Demo (transparent status bar)</string>
<string name="cat_topappbar_collapsing_title">Collapsing Demo</string>
<string name="cat_topappbar_collapsing_multiline_title">Collapsing Demo (Multiline title)</string>
<string name="cat_topappbar_toolbar_title" translatable="false">Toolbar Demo</string>
<string name="cat_topappbar_action_bar_title">Action Bar Demo</string>
<string name="cat_topappbar_dark_action_bar_title">Dark Action Bar Demo</string>
Expand All @@ -35,6 +36,8 @@
<string name="cat_topappbar_main_demo_toolbar_title">Regular Title</string>
<string name="cat_topappbar_scrolling_demo_toolbar_title">Scrolling Title</string>
<string name="cat_topappbar_collapsing_demo_toolbar_title">Collapsing Title</string>
<string name="cat_topappbar_collapsing_multiline_demo_toolbar_title">This Collapsing Title is
extremely long and thus will be displayed in multiple lines.</string>

<string name="cat_topappbar_edit_menu_item_title">Edit</string>
<string name="cat_topappbar_favorite_menu_item_title">Favorite</string>
Expand Down