Merge "Add usage of app:behavior_skipCollapsed" into nyc-dev

This commit is contained in:
Yuichi Araki
2016-05-13 01:48:42 +00:00
committed by Android (Google) Code Review
6 changed files with 131 additions and 60 deletions

View File

@@ -289,5 +289,14 @@
</intent-filter>
</activity>
<activity android:name=".widget.BottomSheetModalSkipCollapsed"
android:label="@string/design_bottomsheet_modal_skip_collapsed"
android:theme="@style/Theme.BottomSheetModalSkipCollapsed">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="com.example.android.support.design.SAMPLE_CODE" />
</intent-filter>
</activity>
</application>
</manifest>

View File

@@ -30,6 +30,7 @@
<string name="design_bottomsheet_scroll">BottomSheet/With ScrollView in background</string>
<string name="design_bottomsheet_with_fragment">BottomSheet/With Fragment</string>
<string name="design_bottomsheet_modal">BottomSheet/Modal</string>
<string name="design_bottomsheet_modal_skip_collapsed">BottomSheet/Modal (Skip collapsed)</string>
<string name="fab_size_normal">Normal size</string>
<string name="fab_size_mini">Mini size</string>

View File

@@ -59,4 +59,16 @@
<item name="android:layout_marginRight">@dimen/bottom_sheet_horizontal_margin</item>
</style>
<style name="Theme.BottomSheetModalSkipCollapsed" parent="Theme.BottomSheetModal">
<item name="bottomSheetDialogTheme">@style/Theme.BottomSheetModal.BottomSheetDialogSkipCollapsed</item>
</style>
<style name="Theme.BottomSheetModal.BottomSheetDialogSkipCollapsed" parent="Theme.Design.BottomSheetDialog">
<item name="bottomSheetStyle">@style/BottomSheetStyleSkipCollapsed</item>
</style>
<style name="BottomSheetStyleSkipCollapsed" parent="BottomSheetStyle">
<item name="behavior_skipCollapsed">true</item>
</style>
</resources>

View File

@@ -16,69 +16,10 @@
package com.example.android.support.design.widget;
import com.example.android.support.design.Cheeses;
import com.example.android.support.design.R;
import android.content.Context;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.design.widget.BottomSheetDialogFragment;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
/**
* This demonstrates basic usage of {@link BottomSheetDialogFragment}.
*/
public class BottomSheetModal extends AppCompatActivity {
private static final String FRAGMENT_MODAL = "modal";
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.design_bottom_sheet_modal);
findViewById(R.id.show).setOnClickListener(mOnClickListener);
}
private View.OnClickListener mOnClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.show:
new ModalFragment().show(getSupportFragmentManager(), FRAGMENT_MODAL);
break;
}
}
};
/**
* This is the bottom sheet.
*/
public static class ModalFragment extends BottomSheetDialogFragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.design_bottom_sheet_recyclerview, container, false);
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
// For the scrolling content, you can use RecyclerView, NestedScrollView or any other
// View that inherits NestedScrollingChild
RecyclerView recyclerView =
(RecyclerView) view.findViewById(R.id.bottom_sheet_recyclerview);
Context context = recyclerView.getContext();
recyclerView.setLayoutManager(new LinearLayoutManager(context));
recyclerView.setAdapter(new SimpleStringRecyclerViewAdapter(context,
Cheeses.sCheeseStrings));
}
}
public class BottomSheetModal extends BottomSheetModalBase {
}

View File

@@ -0,0 +1,81 @@
/*
* Copyright (C) 2016 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 android.content.Context;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.design.widget.BottomSheetDialogFragment;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.example.android.support.design.Cheeses;
import com.example.android.support.design.R;
abstract class BottomSheetModalBase extends AppCompatActivity {
private static final String FRAGMENT_MODAL = "modal";
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.design_bottom_sheet_modal);
findViewById(R.id.show).setOnClickListener(mOnClickListener);
}
private View.OnClickListener mOnClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.show:
new ModalFragment().show(getSupportFragmentManager(), FRAGMENT_MODAL);
break;
}
}
};
/**
* This is the bottom sheet.
*/
public static class ModalFragment extends BottomSheetDialogFragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.design_bottom_sheet_recyclerview, container, false);
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
// For the scrolling content, you can use RecyclerView, NestedScrollView or any other
// View that inherits NestedScrollingChild
RecyclerView recyclerView =
(RecyclerView) view.findViewById(R.id.bottom_sheet_recyclerview);
Context context = recyclerView.getContext();
recyclerView.setLayoutManager(new LinearLayoutManager(context));
recyclerView.setAdapter(new SimpleStringRecyclerViewAdapter(context,
Cheeses.sCheeseStrings));
}
}
}

View File

@@ -0,0 +1,27 @@
/*
* Copyright (C) 2016 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 android.support.design.widget.BottomSheetDialogFragment;
/**
* This demonstrates basic usage of {@link BottomSheetDialogFragment}.
*
* <p>This version has behavior_skipCollapsed="true" in its theme.</p>
*/
public class BottomSheetModalSkipCollapsed extends BottomSheetModalBase {
}