其他分享
首页 > 其他分享> > android – 在底部工作表中向下滚动

android – 在底部工作表中向下滚动

作者:互联网

我想在底部工作表完全打开时向下滚动视图(向上拖动到完成屏幕).它向上滚动时效果很好但在向下滚动时不起作用.相反,整个底层都下降了.任何出路?

主要活动

import android.os.Bundle;
import android.support.design.widget.BottomSheetBehavior;
import android.support.design.widget.BottomSheetDialog;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.TypedValue;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button fab = (Button) findViewById(R.id.button);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                BottomSheetDialog bottomSheetDialog  = new BottomSheetDialog(MainActivity.this);
                View parentView = getLayoutInflater().inflate(R.layout.sheetlayout,null);
                bottomSheetDialog.setContentView(parentView);
                BottomSheetBehavior bottomSheetBehavior = BottomSheetBehavior.from((View) parentView.getParent());
                bottomSheetBehavior.setPeekHeight(
                        (int) TypedValue.applyDimension(
                                TypedValue.COMPLEX_UNIT_DIP,100,getResources().getDisplayMetrics()
                        )
                );
                bottomSheetDialog.show();

            }
        });
    }
}

SheetLayout.xml

<?xml version="1.0" encoding="utf-8"?>
<ScrollView
    android:layout_height="match_parent"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent">

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        android:text="button1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/button1" />

    <Button
        android:text="button2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/button2" />

    <Button
        android:text="button3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/button3" />

    <Button
        android:text="button4"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/button4" />

    <Button
        android:text="button5"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/button5" />

    <Button
        android:text="button6"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/button18" />

    <Button
        android:text="button7"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/button7" />

    <Button
        android:text="button8"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/button8" />

    <Button
        android:text="button9"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/button9" />

    <Button
        android:text="button10"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/button10" />

    <Button
        android:text="button11"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/button11" />

    <Button
        android:text="button12"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/button12" />

    <Button
        android:text="button13"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/button13" />

    <Button
        android:text="button14"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/button14" />

    <Button
        android:text="button15"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/button15" />

    <Button
        android:text="button16"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/button16" />

    <Button
        android:text="button17"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/button17" />

    <Button
        android:text="button18"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/button6" />
</LinearLayout>
    </ScrollView>

EDIT1

<?xml version="1.0" encoding="utf-8"?>


<ScrollView
    android:layout_height="match_parent"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent">

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    >

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical" android:layout_width="match_parent"
        android:layout_height="match_parent">

        <Button
            android:text="button1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/button1" />

        <Button
            android:text="button2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/button2" />

        <Button
            android:text="button3"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/button3" />

        <Button
            android:text="button4"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/button4" />

        <Button
            android:text="button5"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/button5" />

        <Button
            android:text="button6"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/button18" />

        <Button
            android:text="button7"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/button7" />

        <Button
            android:text="button8"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/button8" />

        <Button
            android:text="button9"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/button9" />

        <Button
            android:text="button10"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/button10" />

        <Button
            android:text="button11"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/button11" />

        <Button
            android:text="button12"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/button12" />

        <Button
            android:text="button13"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/button13" />

        <Button
            android:text="button14"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/button14" />

        <Button
            android:text="button15"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/button15" />

        <Button
            android:text="button16"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/button16" />

        <Button
            android:text="button17"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/button17" />

        <Button
            android:text="button18"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/button6" />
    </LinearLayout>
</android.support.design.widget.CoordinatorLayout>
    </ScrollView>

EDIT2

<?xml version="1.0" encoding="utf-8"?>

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ScrollView
        android:layout_width="match_parent"
        app:layout_behavior="android.support.design.widget.BottomSheetBehavior"
        android:layout_height="match_parent">

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        >

        <Button
            android:text="@string/button1"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:id="@+id/button1"
            android:layout_weight="0.66" />

        <Button
            android:text="button2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/button2" />

        <Button
            android:text="button3"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/button3" />

        <Button
            android:text="button4"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/button4" />

        <Button
            android:text="button5"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/button5" />

        <Button
            android:text="button6"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/button18" />

        <Button
            android:text="button7"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/button7" />

        <Button
            android:text="button8"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/button8" />

        <Button
            android:text="button9"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/button9" />

        <Button
            android:text="@string/button10"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/button10" />

        <Button
            android:text="@string/button11"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/button11" />

        <Button
            android:text="@string/button12"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/button12" />

        <Button
            android:text="button13"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/button13" />

        <Button
            android:text="button14"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/button14" />

        <Button
            android:text="button15"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/button15" />

        <Button
            android:text="button16"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/button16" />

        <Button
            android:text="button17"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/button17" />

        <Button
            android:text="button18"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/button6" />
    </LinearLayout>
    </ScrollView>
</android.support.design.widget.CoordinatorLayout>

解决方法:

我有同样的问题,并使用android.support.v4.widget.NestedScrollView修复它.下面是我的底部布局代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="8dp"
    android:paddingTop="8dp">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:clickable="true"
        android:foreground="?attr/selectableItemBackground"
        android:orientation="horizontal"
        android:paddingBottom="8dp"
        android:paddingLeft="@dimen/activity_margin"
        android:paddingRight="@dimen/activity_margin"
        android:paddingTop="8dp">

        <ImageView
            android:layout_width="24dp"
            android:layout_height="24dp"
            android:layout_marginRight="32dp"
            android:src="@drawable/ic_email_black_24dp"
            android:tint="#737373" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:text="Email a Copy"
            android:textColor="#737373"
            android:textSize="16sp" />

    </LinearLayout>

    <android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <WebView
            android:id="@+id/webpage"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/colorPrimary"></WebView>
    </android.support.v4.widget.NestedScrollView>
</LinearLayout>

标签:android,scrollview,bottom-sheet
来源: https://codeday.me/bug/20190519/1134257.html