2016-11-01 29 views
2

我想在底部工作表完全打開時向下滾動視圖(向上拖動至完成屏幕)。它在滾動時運行良好,但在滾動時不起作用。而是,整個底部表單下來。任何出路?在底部工作表中向下滾動

主要活動

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> 

回答

0

我面臨同樣的問題,但我使用ListView工作不滾動視圖,但我仍然希望我的回答可以幫助你!

只需在您的佈局中將FrameLayout設置爲父級,將按鈕放入LinearLayout並將其設置爲layout_height =「300dp」。 最後從代碼隱藏文件中刪除setPeekHeight。

BottomSheetLayout.xml

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

    <ScrollView 
     android:layout_height="match_parent" 
     android:layout_width="match_parent"> 
      <LinearLayout 
       android:orientation="vertical" 
       android:layout_width="match_parent" 
       android:layout_height="300dp"> 

        <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> 
</FrameLayout> 
1

我有同樣的問題,使用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> 
相關問題