android 怎么判断modal bottom sheetsheetfragment是半展开还是完全展开状态

BottomSheetDialogFragment 的使用 - CSDN博客
BottomSheetDialogFragment 的使用
自定义类:XBottomSheetDialogFragment
public class XBottomSheetDialogFragment extends BottomSheetDialogFragment {
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View inflate = inflater.inflate(R.layout.view_bottom_sheet_fragment, container);
自定义布局文件 view_bottom_sheet_fragment
&?xml version="1.0" encoding="utf-8"?&
xmlns:android="/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/default_app_main_color"&
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="300px"&
android:layout_centerInParent="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="啦啦啦啦啦"/&
代码中控制显示隐藏
private XBottomSheetDialogFragment mXBottomSheetDialogF
@OnClick(R.id.btn_dialog_fragment)
public void dialog(){
if(mXBottomSheetDialogFragment == null){
mXBottomSheetDialogFragment = new XBottomSheetDialogFragment();
mXBottomSheetDialogFragment.show(getSupportFragmentManager(),"Dialog");
本文已收录于以下专栏:
相关文章推荐
仿今日头条视频播放页,实现效果如下图:
可以拖动使之消失,也可以点击空白处使之消失,是不是很有趣呢?
第一次看到这种效果的时候,我直接蒙蔽了,这样要是用自定义ViewGroup来实现的话需要考虑一...
BottomSheetBehavior、BottomSheetDialog和BottomSheetDialogFragment的用法;
bottom sheet是design包下支持的一个控件,它从页...
在官方提供的Android.support.design.widget包中,加入bottom sheet能够很方便的实现一些酷炫的功能。官方blog说明得比较简单,中文博客上也有一些介绍和说明
1.      
打开PowerDesigner,点击File-&New
2.      
选择Conceptual Data Model...
在我使用maven构建web项目时,web-inf下面一直都得不到想要的classes文件结构及内容。
解决方案:
bulid构建之后的classes是在...
他的最新文章
讲师:宋宝华
讲师:何宇健
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)Bottom Sheet
转载请注明出处:http:
blog csdn net crazy1235 article details
上周android推出了Android Support Library 23 2版本,提供了一些新的API支持和对现有库增加新特性。
先来看看Bottom Sheet这
上周android推出了 Support Library 23.2版本,提供了一些新的API支持和对现有库增加新特性。
先来看看Bottom Sheet这个控件。
该控件一般用于底部划出表单,Material Design 设计官网上就有这种设计。
来看怎么用:
通过为CoordinatorLayout 的一个子view添加BottomSheetBehavior 表现行为即可。
layout_bottom_sheet.xml 里面定义的是sheet的布局,里面定义成什么就看你自己想怎么写了。
需要注意的就是,sheet的布局必须是CoordinatorLayout 的一个子view。
public static
BottomSheetBehavior from(V view) {
ViewGroup.LayoutParams params = view.getLayoutParams();
if (!(params instanceof CoordinatorLayout.LayoutParams)) {
throw new IllegalArgumentException("The view is not a child of CoordinatorLayout");
CoordinatorLayout.Behavior behavior = ((CoordinatorLayout.LayoutParams) params)
.getBehavior();
if (!(behavior instanceof BottomSheetBehavior)) {
throw new IllegalArgumentException(
"The view is not associated with BottomSheetBehavior");
return (BottomSheetBehavior)
通过上面的代码可以看出,不是子view会出现IllegalArgumentException.
Bottom Sheet 一共有五个状态回调:
STATE_COLLAPSED
折叠状态。可通过app:behavior_peekHeight来设置默认显示的高度。
STATE_SETTING
拖拽松开之后到达终点位置(collapsed or expanded)前的状态。
STATE_EXPANDED
完全展开的状态。
STATE_HIDDEN
隐藏状态。默认是false,可通过app:behavior_hideable属性设置。
STATE_DRAGGING
被拖拽状态
View bottomSheet = findViewById(R.id.bottom_sheet);
BottomSheetBehavior behavior = BottomSheetBehavior.from(bottomSheet);
behavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
public void onStateChanged(View bottomSheet, int newState) {
String state = "null";
switch (newState) {
state = "STATE_DRAGGING";
state = "STATE_SETTLING";
state = "STATE_EXPANDED";
state = "STATE_COLLAPSED";
state = "STATE_HIDDEN";
Log.d("MainActivity", "newState:" + state);
public void onSlide(View bottomSheet, float slideOffset) {
Log.d("MainActivity", "slideOffset:" + slideOffset);
如果Bottom Sheet中有需要滑动的视图,必须支持嵌套滑动才行。比如:NestedScrollView、RecyclerView或者API 21 + 上的ListView、ScrollView。
Support Library 23.2中还提供了BottomSheetDialog和BottomSheetDialogFragment。
用法与普通的dialog差不多。
Button dialogBtn = (Button) findViewById(R.id.bottom_sheet_dialog_btn);
dialogBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
BottomSheetDialog dialog = new BottomSheetDialog(BottomSheetDemo.this);
dialog.setContentView(R.layout.bottom_sheet_dialog_layout);
dialog.show();
bottom_sheet_dialog_layout.xml
Bottom Sheet介绍完毕。Android Bottom Sheet详解
最近android更新了support library, 版本到了23.2, 从官方blog中我们还是可以看到几个令人心动的特性的,例如夜间模式的支持,BottomSheet.今天我们就来介绍一下这个Bottom Sheet,这可能会给我们开发中需要的一些效果带来便利.
虽然这里我们准备用整整一篇博客的时间来介绍它,不过这东西使用起来太简单了也太方便了,这还要感谢Behavior机制的引入,我记得在博客看CoordinatorLayout.Behavior原理中说过,Behavior其实是CoordinatorLayout
的核心内容,Behavior允许我们在不用自定义控件的前提下实现一些效果,Bottom Sheet正是通过Behavior实现的.
首先我们来看一个效果,
这个效果的实现很简单,甚至基本不需要java代码,我们只需要给我们的下面的这个可滑动vc3Ryb25nPrXEdmlld9K7uPZiZWhhdmlvcr7Nb2sssNHV4rj2YmVoYXZpb3LWuLaozqo8Y29kZT5hbmRyb2lkLnN1cHBvcnQuZGVzaWduLndpZGdldC5Cb3R0b21TaGVldEJlaGF2aW9yPC9jb2RlPr7Nv8nS1LTvtb3V4tbW0Ke5+8HLLMrHsrvKx7rcvPK1pT8gwLS/tL+0tPrC67DJLDwvcD4NCjxwcmUgY2xhc3M9"brush:">
看到NestedScrollView的behavior了吗? 我们仅仅指定了一下他的值就可以了,其他的地方没有任何特殊的.
虽然说我们不需要任何java代码就可以实现,不过这里我们还是希望可以通过按钮去控制它,从底部滑出毕竟太隐藏了,没有几个人可以猜到.
public void intro(View view) {
BottomSheetBehavior behavior = BottomSheetBehavior.from(findViewById(R.id.scroll));
if(behavior.getState() == BottomSheetBehavior.STATE_EXPANDED) {
behavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
behavior.setState(BottomSheetBehavior.STATE_EXPANDED);
代码也很简单,首先我们从NestedScrollView上获取到他的Behavior,因为我们知道是 BottomSheetBehavior,所以这里直接死用BottomSheetBehavior.from方法来获取,然后通过getState方法来判断现在的状态,如果是展开的状态,我们就让它收缩起来,反之,展开它.
我们还可以给BottomSheetBehavior一个callback来监听状态,
behavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
public void onStateChanged(@NonNull View bottomSheet, int newState) {
public void onSlide(@NonNull View bottomSheet, float slideOffset) {
这个确实简单,不过有没有发现它的用户不是那么的广,接下来我们就要来介绍一个用户相对来说广泛点的BottomSheetDialog,这个Dialog可以实现什么效果呢? 举个例子吧,现在我们在商城相关的app,当我们点击购买的时候需要选择一下要购买的商品的属性,以前我们可能是在底部弹出一个Popupwindow来实现,现在好了,我们可以利用BottomSheetDialog轻松的实现这个功能了.首先继续来看看效果吧.
这里是一个含有一个List的dialog,当我们点击按钮显示的时候,它会出现一部分,当我们拖动它的时候,他会占满屏幕,现在我们就来看一下代码如何实现,
public void select(View view) {
RecyclerView recyclerView = (RecyclerView) LayoutInflater.from(this)
.inflate(R.layout.list, null);
recyclerView.setItemAnimator(new DefaultItemAnimator());
recyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
Adapter adapter = new Adapter();
recyclerView.setAdapter(adapter);
final BottomSheetDialog dialog = new BottomSheetDialog(this);
dialog.setContentView(recyclerView);
dialog.show();
adapter.setOnItemClickListener(new Adapter.OnItemClickListener() {
public void onItemClick(int position, String text) {
Toast.makeText(MainActivity.this, text, Toast.LENGTH_SHORT).show();
dialog.dismiss();
static class Adapter extends RecyclerView.Adapter {
private OnItemClickListener mItemClickL
public void setOnItemClickListener(OnItemClickListener li) {
mItemClickListener =
public Adapter.Holder onCreateViewHolder(ViewGroup parent, int viewType) {
View item = LayoutInflater.from(parent.getContext()).inflate(R.layout.item, parent, false);
return new Holder(item);
public void onBindViewHolder(final Adapter.Holder holder, int position) {
holder.tv.setText(&item & + position);
if(mItemClickListener != null) {
holder.itemView.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
mItemClickListener.onItemClick(holder.getLayoutPosition(),
holder.tv.getText().toString());
public int getItemCount() {
return 50;
class Holder extends RecyclerView.ViewHolder {
public Holder(View itemView) {
super(itemView);
tv = (TextView) itemView.findViewById(R.id.text);
interface OnItemClickListener {
void onItemClick(int position, String text);
别看代码长,主要是Adapter的代码!而且没有任何难度!我们来看select方法,这个方法中我们通过LayoutInflater加载了一个布局,这个布局很简单,就是一个RecyclerView.接下来的几行代码是配置RecyclerView和它的Adapter,相信不用多说大家也已经很熟悉了.关键是继续往下的3行代码,首先我们new了一个BottomSheetDialog,然后通过setContentView方法把我们inflate进来的布局设置到这个dialog上,最后调用dialog的show方法将dialog显示出来,这个效果就是这么容易就实现了,这个dialog特性的代码我们一行也没有写,android都已经帮我们完成好了.最后我们还在item的click事件中将这个dialog隐藏掉了.
好了,今天这篇博客很简单,主要是最新的support包中这个bottomSheet的使用,以后大家在项目中又可以多一种实现dialog的方式了, 赶紧尝试一下吧.BottomSheet、BottomSheetDialog使用详解 - 简书
BottomSheet、BottomSheetDialog使用详解
BottomSheet使用详解
Android Support Library 23.2里的 Design Support Library新加了一个Bottom Sheets控件,Bottom Sheets顾名思义就是底部操作控件,用于在屏幕底部创建一个可滑动关闭的视图,可以替代对话框和菜单。其中包含BottomSheets、BottomSheetDialog和BottomSheetDialogFragment三种可以使用。
BottomSheets常见的效果如图,并且在国内的知乎、百度地图上也是可以看到效果。
这里写图片描述
这里写图片描述
首先我们学习使用BottomSheets,BottomSheets其实也是依赖于Behavior机制的使用。先引用依赖,最新的design包已经到24了
compile 'com.android.support:design:24.2.1'
BottomSheets
在布局文件xml中的使用,BottomSheets需要配合CoordinatorLayout控件
&?xml version="1.0" encoding="utf-8"?&
&android.support.design.widget.CoordinatorLayout
android:id="@+id/cl"
xmlns:android="/apk/res/android"
xmlns:app="/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"&
&android.support.v4.widget.NestedScrollView
android:id="@+id/bottom_sheet"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:behavior_hideable="true"
app:behavior_peekHeight="50dp"
app:layout_behavior="@string/bottom_sheet_behavior"&
&LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"&
&!-- 你自己的代码--&
&/LinearLayout&
&/android.support.v4.widget.NestedScrollView&
&/android.support.design.widget.CoordinatorLayout&
其中包含三个属性
app:behavior_hideable="true"
app:behavior_peekHeight="0dp"
app:layout_behavior="@string/bottom_sheet_behavior"
app:behavior_peekHeight="50dp"
peekHeight是当Bottom Sheets关闭的时候,底部我们能看到的高度,默认是0不可见。
app:behavior_hideable="true" hideable是当我们拖拽下拉的时候,bottom sheet是否能全部隐藏。
layout_behavior指向bottom_sheet_behavior,代表这是一个bottom Sheets
在java代码中的使用
BottomSheetB
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_bottom_sheet);
View bottomSheet = findViewById(R.id.bottom_sheet);
behavior = BottomSheetBehavior.from(bottomSheet);
behavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
public void onStateChanged(@NonNull View bottomSheet, int newState)
//这里是bottomSheet状态的改变
public void onSlide(@NonNull View bottomSheet, float slideOffset)
//这里是拖拽中的回调,根据slideOffset可以做一些动画
behavior_hideable对应代码 behavior.setHideable(false);behavior_peekHeight对应代码 behavior.setPeekHeight(50);
setBottomSheetCallback可以监听回调的状态,onStateChanged监听状态的改变,onSlide是拖拽的回调,onStateChanged可以监听到的回调一共有5种:
STATE_HIDDEN: 隐藏状态。默认是false,可通过app:behavior_hideable属性设置。
STATE_COLLAPSED: 折叠关闭状态。可通过app:behavior_peekHeight来设置显示的高度,peekHeight默认是0。
STATE_DRAGGING: 被拖拽状态
STATE_SETTLING: 拖拽松开之后到达终点位置(collapsed or expanded)前的状态。
STATE_EXPANDED: 完全展开的状态。BottomSheets控件配合NestedScrollView、RecyclerView使用效果会更好,合理的使用让APP逼格满满。
我们需要在按钮按钮上添加对BottomSheets的显示和隐藏
if(behavior.getState() == BottomSheetBehavior.STATE_EXPANDED) {
behavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
behavior.setState(BottomSheetBehavior.STATE_EXPANDED);
design24.2.1的BottomSheets和23.2.0的BottomSheet有很大的区别,design23.2.0的包中如果你使用了BottomSheet,可以在屏幕外任何位置上拉即可拉出来布局,在24.2.1中没有了这个效果。
BottomSheetDialog
BottomSheetDialog应该是最实用的控件,也是使用率非常高的控件。它可以替代大多数网格显示和列表展示的dialog和popupwindow,默认宽度撑满,并且在BottomSheetDialog 区域中向下滑动也让对话框消失。
首先写一个dialog展示的xml,dialog中xml可以不用被CoordinatorLayout包裹,但是还是推荐实用推荐的滑动控件NestedScrollView
&?xml version="1.0" encoding="utf-8"?&
&android.support.v4.widget.NestedScrollView
xmlns:android="/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"&
&LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"&
android:onClick="doclick"
android:layout_width="match_parent"
android:layout_height="100dp"
android:background="@color/colorPrimary"
android:gravity="center"
android:text="啦啦啦啦啦啦啦啦啦"
android:textColor="@color/white"
android:textSize="18sp"/&
&ImageView
android:onClick="doclick"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="centerCrop"
android:src="@drawable/banner"/&
&/LinearLayout&
&/android.support.v4.widget.NestedScrollView&
编写java代码
BottomSheetDialog dialog = new BottomSheetDialog(this);
View view = getLayoutInflater().inflate(R.layout.dialog_bottom_sheet, null);
dialog.setContentView(view);
dialog.show();
只需要四行我们就可以展示BottomSheets效果的dialog,高度为你设置的behavior_peekHeight或者默认高度,宽度撑满。在很多情况底部显示dialog的时候,都可以考虑实用BottomSheetDialog来实现。效果如图:
这里写图片描述
BottomSheetDialogFragment
BottomSheetDialogFragment可以帮助我们实现全屏的BottomSheet展示效果。新建一个类继承BottomSheetDialogFragment
xml使用BottomSheetDialog的布局样式,我们直接看java代码
public class FullSheetDialogFragment extends BottomSheetDialogFragment {
private BottomSheetBehavior mB
public Dialog onCreateDialog(Bundle savedInstanceState)
BottomSheetDialog dialog = (BottomSheetDialog) super.onCreateDialog(savedInstanceState);
View view = View.inflate(getContext(), R.layout.dialog_bottom_sheet, null);
dialog.setContentView(view);
mBehavior = BottomSheetBehavior.from((View) view.getParent());
public void onStart()
super.onStart();
//默认全屏展开
mBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
public void doclick(View v)
//点击任意布局关闭
mBehavior.setState(BottomSheetBehavior.STATE_HIDDEN);
调用BottomSheetDialogFragment展示
new FullSheetDialogFragment().show(getSupportFragmentManager(), "dialog");
BottomSheetDialogFragment的效果跟BottomSheetDialog差不多,根据情况选择。效果如图:
这里写图片描述
BottomSheetDialog就介绍到此,如果有错误请指出,谢谢。
更多内容可以关注我的公众号:丁军伟Dev(或者搜索DingAndroid)
Android程序员BottomSheet底部动作条使用 - CSDN博客
BottomSheet底部动作条使用
底部动作条底部动作条(Bottom Sheets)是一个从屏幕底部边缘向上滑出的一个面板,使用这种方式向用户呈现一组功能。底部动作条呈现了简单、清晰、无需额外解释的一组操作。使用环境底部动作条(Bottom Sheets)特别适合有三个或者三个以上的操作需要提供给用户选择、并且不需要对操作有额外解释的情景。如果只有两个或者更少的操作,或者需要详加描述的,可以考虑使用菜单(Menu)或者对话框替代。底部动作条(Bottom Sheets)可以是列表样式的也可以是宫格样式的。宫格布局可以增加视觉的清晰度。你可以使用底部动作条(Bottom Sheets)展示和其 app 相关的操作,比如做为进入其他 app 的入口(通过 app 的 icon 进入)。我们来看看官方展示的效果:行为显示底部动作条的时候,动画应该从屏幕底部边缘向上展开。根据上一步的内容,向用户展示用户上一步的操作之后能够继续操作的内容,并提供模态[1]的选择。点击其他区域会使得底部动作条伴随下滑的动画关闭掉。如果这个窗口包含的操作超出了默认的显示区域,这个窗口需要可以滑动。滑动操作应当向上拉起这个动作条的内容,甚至可以覆盖整个屏幕。当窗口覆盖整个屏幕的时候,需要在上部的标题栏左侧增加一个收起按钮。添加依赖:compile 'com.android.support:design:24.2.0'BottomSheet使用例子:&?xml version=&1.0& encoding=&utf-8&?&
&android.support.design.widget.CoordinatorLayout xmlns:android=&/apk/res/android&
xmlns:app=&/apk/res-auto&
android:layout_width=&match_parent&
android:layout_height=&match_parent&&
android:layout_width=&match_parent&
android:layout_height=&80dp&
android:onClick=&click&
android:text=&BottomSheet& /&
&android.support.v4.widget.NestedScrollView
android:id=&@+id/bottom_sheet&
android:layout_width=&match_parent&
android:layout_height=&wrap_content&
app:layout_behavior=&@string/bottom_sheet_behavior&&
&LinearLayout
android:layout_width=&match_parent&
android:layout_height=&300dp&
android:gravity=&center&
android:orientation=&vertical&&
android:layout_width=&match_parent&
android:layout_height=&wrap_content&
android:minHeight=&50dp&
android:gravity=&center_vertical&
android:drawableLeft=&@mipmap/ic_launcher&
android:text=&BottomSheet布局& /&
android:layout_width=&match_parent&
android:layout_height=&wrap_content&
android:gravity=&center_vertical&
android:minHeight=&50dp&
android:drawableLeft=&@mipmap/ic_launcher&
android:text=&BottomSheet布局& /&
android:layout_width=&match_parent&
android:layout_height=&wrap_content&
android:gravity=&center_vertical&
android:minHeight=&50dp&
android:drawableLeft=&@mipmap/ic_launcher&
android:text=&BottomSheet布局& /&
android:layout_width=&match_parent&
android:layout_height=&wrap_content&
android:gravity=&center_vertical&
android:minHeight=&50dp&
android:drawableLeft=&@mipmap/ic_launcher&
android:text=&BottomSheet布局& /&
&/LinearLayout&
&/android.support.v4.widget.NestedScrollView&
&/android.support.design.widget.CoordinatorLayout&页面代码:public class MainActivity extends AppCompatActivity {
private BottomSheetBehavior&View& bottomS
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
private void init() {
bottomSheet.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
public void onStateChanged(@NonNull View bottomSheet, int newState) {
//newState 有四个状态 :
//展开 BottomSheetBehavior.STATE_EXPANDED
//收起 BottomSheetBehavior.STATE_COLLAPSED
//拖动 BottomSheetBehavior.STATE_DRAGGING
//下滑 BottomSheetBehavior.STATE_SETTLING
public void onSlide(@NonNull View bottomSheet, float slideOffset) {
//这里是拖拽中的回调,slideOffset为0-1 完全收起为0 完全展开为1
}当然BottomSheet这种效果是高度可扩展的,你可以在布局中实现你想要的任何效果。BottomSheetDialogBottomSheetDialog的使用也很简单,直接上代码:public class BottomSheetDialogActivity extends AppCompatActivity{
private List&String& mL
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_bottomsheet);
initData();
private void initData() {
mList = new ArrayList&&();
for(int i=0; i&20; i++){
mList.add(&item &+i);
public void click1(View view){
final BottomSheetDialog bottomSheetDialog = new BottomSheetDialog(this);
//创建recyclerView
RecyclerView recyclerView = new RecyclerView(this);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(linearLayoutManager);
RecyclerAdapter recyclerAdapter = new RecyclerAdapter(mList,this);
recyclerView.setAdapter(recyclerAdapter);
recyclerAdapter.setOnItemClickListener(new RecyclerAdapter.OnItemClickListener() {
public void onItemClickListener(View item, int position) {
Toast.makeText(BottomSheetDialogActivity.this, &item &+position, Toast.LENGTH_SHORT).show();
bottomSheetDialog.dismiss();
bottomSheetDialog.setContentView(recyclerView);
bottomSheetDialog.show();
}adapterpublic class RecyclerAdapter
extends RecyclerView.Adapter&RecyclerAdapter.ViewHolder&{
private List&String&
private Context mC
private OnItemClickListener onItemClickL
public RecyclerAdapter(List&String& list, Context mContext) {
this.list =
this.mContext = mC
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View inflate = LayoutInflater.from(mContext).inflate(R.layout.item_layou, parent, false);
return new ViewHolder(inflate);
public void onBindViewHolder(ViewHolder holder, final int position) {
holder.tv.setText(list.get(position));
holder.tv.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if(onItemClickListener!=null){
onItemClickListener.onItemClickListener(v,position);
public int getItemCount() {
return list.size();
public static class ViewHolder extends RecyclerView.ViewHolder{
public ViewHolder(View itemView) {
super(itemView);
tv = (TextView) itemView.findViewById(R.id.item_tv);
public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
this.onItemClickListener = onItemClickL
public interface OnItemClickListener{
void onItemClickListener(View item, int position);
}item布局:&?xml version=&1.0& encoding=&utf-8&?&
&LinearLayout xmlns:android=&/apk/res/android&
android:layout_width=&match_parent&
android:layout_height=&50dp&
android:orientation=&vertical&&
android:id=&@+id/item_tv&
android:layout_width=&match_parent&
android:layout_height=&50dp& /&
&/LinearLayout&其它可以实现的效果还有很多,大家可以根据具体情况自行修改。
本文已收录于以下专栏:
相关文章推荐
底部动作条
底部动作条(Bottom Sheets)是一个从屏幕底部边缘向上滑出的一个面板,使用这种方式向用户呈现一组功能。底部动作条呈现了简单、清晰、无需额外解释的一组操作。
底部动作条...
Android BottomSheet:便捷易用的底部滑出面板(1)
Android BottomSheet是github上的一个第三方开源项目,其主页:/F...
Android BottomSheet:底部弹出Fragment面板(4)
BottomSheet不仅可以弹出轻量级的定制好的面板(见附录文章5,6,7),还可以弹出“重”的fragme...
转载请注明出处:王亟亟的大牛之路这两天都在忙公事吧,文章断更了2天,不过为了发而发反而影响质量,还是要弄一些至少大家有使用价值的东西,顺道把之前一直在安利的库每日一更了下,这里继续给出案例地址:htt...
Android开发-BottomSheetDialogFragment的使用和封装介绍在官方提供的android.support.design.widget包中,加入bottom sheet能够很方便...
底边弹出的一个选择列表
Android Bottom sheet Dialog 的 坑
他的最新文章
讲师:宋宝华
讲师:何宇健
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)

我要回帖

更多关于 bottomsheet 显示高度 的文章

 

随机推荐