diff options
author | Yuichi Araki <yaraki@google.com> | 2015-09-15 18:09:14 +0900 |
---|---|---|
committer | Yuichi Araki <yaraki@google.com> | 2015-09-28 14:44:48 +0900 |
commit | e0886381642104aae876cfa6340050621a331573 (patch) | |
tree | 288b5e46844061ebd5372351350fa21c743798d2 | |
parent | 91b02594f708109cdc96cc94961df18a5fe94bd9 (diff) | |
download | android_development-e0886381642104aae876cfa6340050621a331573.tar.gz android_development-e0886381642104aae876cfa6340050621a331573.tar.bz2 android_development-e0886381642104aae876cfa6340050621a331573.zip |
Add usage of BottomSheetBehavior
Change-Id: Ia6a6098c9a2ab7bcda0cc29c6800494faa97b440
6 files changed, 175 insertions, 0 deletions
diff --git a/samples/SupportDesignDemos/AndroidManifest.xml b/samples/SupportDesignDemos/AndroidManifest.xml index ac7a0333f..1c99d4996 100644 --- a/samples/SupportDesignDemos/AndroidManifest.xml +++ b/samples/SupportDesignDemos/AndroidManifest.xml @@ -190,5 +190,14 @@ </intent-filter> </activity> + <activity android:name=".widget.BottomSheetUsage" + android:label="@string/design_bottomsheet" + android:theme="@style/Theme.Design"> + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + <category android:name="com.example.android.support.design.SAMPLE_CODE" /> + </intent-filter> + </activity> + </application> </manifest> diff --git a/samples/SupportDesignDemos/res/layout/design_bottom_sheet.xml b/samples/SupportDesignDemos/res/layout/design_bottom_sheet.xml new file mode 100644 index 000000000..56197eaec --- /dev/null +++ b/samples/SupportDesignDemos/res/layout/design_bottom_sheet.xml @@ -0,0 +1,72 @@ +<?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. +--> +<android.support.design.widget.CoordinatorLayout + android:id="@+id/coordinator" + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res/com.example.android.support.design" + android:layout_width="match_parent" + android:layout_height="match_parent"> + + <!-- + This is the bottom sheet. You can use any View as a bottom sheet by marking it with + app:layout_behavior as BottomSheetBehavior. + --> + <LinearLayout + android:id="@+id/bottom_sheet" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_marginLeft="@dimen/bottom_sheet_horizontal_margin" + android:layout_marginRight="@dimen/bottom_sheet_horizontal_margin" + android:background="?android:attr/windowBackground" + android:elevation="16dp" + android:minHeight="128dp" + android:orientation="vertical" + app:layout_behavior="android.support.design.widget.BottomSheetBehavior" + app:behavior_peekHeight="128dp"> + + <TextView + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="@string/bottom_sheet" + android:paddingTop="8dp" + android:paddingLeft="16dp" + android:paddingRight="16dp" + android:paddingBottom="8dp" + style="@style/TextAppearance.AppCompat.Title"/> + + <View + android:layout_width="match_parent" + android:layout_height="1dp" + android:background="@android:color/darker_gray"/> + + <android.support.v4.widget.NestedScrollView + android:id="@+id/scroll" + android:layout_width="match_parent" + android:layout_height="match_parent"> + + <TextView + android:id="@+id/dialogue" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:padding="16dp" + style="@style/TextAppearance.AppCompat.Body1"/> + + </android.support.v4.widget.NestedScrollView> + + </LinearLayout> + +</android.support.design.widget.CoordinatorLayout>
\ No newline at end of file diff --git a/samples/SupportDesignDemos/res/values-w540dp/dimens.xml b/samples/SupportDesignDemos/res/values-w540dp/dimens.xml new file mode 100644 index 000000000..26fecbf04 --- /dev/null +++ b/samples/SupportDesignDemos/res/values-w540dp/dimens.xml @@ -0,0 +1,19 @@ +<?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. +--> +<resources> + <dimen name="bottom_sheet_horizontal_margin">64dp</dimen> +</resources> diff --git a/samples/SupportDesignDemos/res/values/dimens.xml b/samples/SupportDesignDemos/res/values/dimens.xml new file mode 100644 index 000000000..ac8777cfe --- /dev/null +++ b/samples/SupportDesignDemos/res/values/dimens.xml @@ -0,0 +1,19 @@ +<?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. +--> +<resources> + <dimen name="bottom_sheet_horizontal_margin">0dp</dimen> +</resources> diff --git a/samples/SupportDesignDemos/res/values/strings.xml b/samples/SupportDesignDemos/res/values/strings.xml index 1370ce0e6..a120337c1 100644 --- a/samples/SupportDesignDemos/res/values/strings.xml +++ b/samples/SupportDesignDemos/res/values/strings.xml @@ -21,6 +21,7 @@ <string name="design_navigation">NavigationView/Usage</string> <string name="design_tabs_basic">TabLayout/Usage</string> <string name="design_text_input">Text Input</string> + <string name="design_bottomsheet">BottomSheet/Usage</string> <string name="fab_size_normal">Normal size</string> <string name="fab_size_mini">Mini size</string> @@ -78,5 +79,6 @@ <string name="menu_search">Search</string> <string name="menu_settings">Settings</string> + <string name="bottom_sheet">Bottom sheet</string> </resources> diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/BottomSheetUsage.java b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/BottomSheetUsage.java new file mode 100644 index 000000000..21f6ffe62 --- /dev/null +++ b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/BottomSheetUsage.java @@ -0,0 +1,54 @@ +/* + * 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. + */ + +package com.example.android.support.design.widget; + +import com.example.android.support.design.R; +import com.example.android.support.design.Shakespeare; + +import android.os.Bundle; +import android.support.annotation.Nullable; +import android.support.design.widget.BottomSheetBehavior; +import android.support.v7.app.AppCompatActivity; +import android.text.TextUtils; +import android.widget.LinearLayout; +import android.widget.TextView; + +/** + * This demonstrates basic usage of {@link BottomSheetBehavior}. + */ +public class BottomSheetUsage extends AppCompatActivity { + + private BottomSheetBehavior<LinearLayout> mBehavior; + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.design_bottom_sheet); + ((TextView) findViewById(R.id.dialogue)).setText(TextUtils.concat(Shakespeare.DIALOGUE)); + mBehavior = BottomSheetBehavior.from((LinearLayout) findViewById(R.id.bottom_sheet)); + } + + @Override + public void onBackPressed() { + if (mBehavior != null && mBehavior.getState() != BottomSheetBehavior.STATE_COLLAPSED) { + mBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED); + } else { + super.onBackPressed(); + } + } + +} |