Android BottomSheet:底部弹出Fragment面板(4)



Android BottomSheet:底部弹出Fragment面板(4)


BottomSheet不仅可以弹出轻量级的定制好的面板(见附录文章5,6,7),还可以弹出“重”的fragment,但是此fragment是BottomSheetFragment。如果开发项目中需要更深度复杂的定制,则需要灵活的写一个fragment重新实现自己的代码设计要求,但是此fragment是需要继承自BottomSheetFragment。
写一个小例子。该例子意图从一个button按钮触发弹出底部的面板,此面板是一个fragment,该fragment可由开发者重写。
先写一个布局activity_bottom_sheet_fragment.xml,很简单:

<com.flipboard.bottomsheet.BottomSheetLayout
    android:
    xmlns:andro
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:padding="16dp">

        <Button
            android:
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal|top"
            android:layout_marginBottom="16dp"
            android:text="@string/show" />
    </RelativeLayout>
</com.flipboard.bottomsheet.BottomSheetLayout>



上层Java代码:

package com.flipboard.bottomsheet.sample;

import com.flipboard.bottomsheet.R;

import android.graphics.Color;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.flipboard.bottomsheet.BottomSheetLayout;
import com.flipboard.bottomsheet.commons.BottomSheetFragment;

public final class BottomSheetFragmentActivity extends AppCompatActivity {

    protected BottomSheetLayout bottomSheetLayout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_bottom_sheet_fragment);

        bottomSheetLayout = (BottomSheetLayout) findViewById(R.id.bottomsheet);

        findViewById(R.id.bottomsheet_fragment_button).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                new TestFragment().show(getSupportFragmentManager(), R.id.bottomsheet);
            }
        });
    }

    public static class TestFragment extends BottomSheetFragment {

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
            View v = inflater.inflate(android.R.layout.simple_list_item_1, null);
            v.setBackgroundColor(Color.LTGRAY);
            v.setMinimumHeight(500);

            TextView text = (TextView) v.findViewById(android.R.id.text1);
            text.setText("zhang phil @ csdn");
            return v;
        }
    }
}


代码运行结果:

Android BottomSheet:底部弹出Fragment面板(4)



附录文章:
1,《Android自底部平滑向上滑出面板的AndroidSlidingUpPanel》链接地址:http://blog.csdn.net/zhangphil/article/details/51444509 
2,《Android音乐、视频类APP常用控件:DraggablePanel(1)》链接地址:http://blog.csdn.net/zhangphil/article/details/51566860 
3,《Android音乐、视频类APP常用控件:DraggablePanel(2)》链接地址:http://blog.csdn.net/zhangphil/article/details/51578665
4,《Android图片加载与缓存开源框架:Android Glide》链接地址http://blog.csdn.net/zhangphil/article/details/45535693
5,《Android BottomSheet:便捷易用的底部滑出面板(1)》链接地址:http://blog.csdn.net/zhangphil/article/details/51775955
6,《Android BottomSheet:以选取图片为例(2)》链接地址:http://blog.csdn.net/zhangphil/article/details/51776408
7,《Android BottomSheet:List列表或Grid网格展示(3)》链接地址:http://blog.csdn.net/zhangphil/article/details/51781698