Android 如何制作从底部出现的布局?

How to make a layout that appear from bottom in Android?

我要详细查看。单击对象时,底部会出现详细布局。 可以通过触摸布局上的任意位置来移动布局。

我使用了一些代码,它不能正常工作。 当我触摸布局时,布局的顶部出现在触摸点的底部。另外,触摸点和布局顶部之间有一些边距

示例图片说明了我的意思。它是地图应用程序“2gis”

mLinearLayout.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View view, MotionEvent event) {

        CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) view.getLayoutParams();
        if (view.getId() != R.id.bottomPanel) return false;

        switch (event.getAction())
        {
            case MotionEvent.ACTION_MOVE:
                params.topMargin = (int)event.getRawY();
                view.setLayoutParams(params);
                break;

            case MotionEvent.ACTION_UP:

                view.setLayoutParams(params);
                break;

            case MotionEvent.ACTION_DOWN:
                break;
        }

        return true;
    }
});

example 1

example 2

您要找的是 material 设计中的 Bottom sheet。 它包含在 Android 设计支持库 v23.2.+.

您需要做的就是将容器视图的layout_behavior设置为BottomSheetBehavior:

app:layout_behavior="android.support.design.widget.BottomSheetBehavior"

这里有一些关于如何在 Android 中实现底部 sheet 的不错的教程:

这是 android 功能底部 sheet。

您可以使用底部 sheet 这个设计库。

compile 'com.android.support:design:23.2.0'

这里有一些教程,可以帮助你开发。

http://code.tutsplus.com/articles/how-to-use-bottom-sheets-with-the-design-support-library--cms-26031

https://github.com/Flipboard/bottomsheet