2016-07-20 2 views
6

Я пытаюсь реализовать нижний лист из библиотеки дизайна Google. Нажатие на кнопку должно открыть нижний лист, который охватывает все окно активности. Например, когда мы открываем письмо в Inbox от Gmail. Но он должен открываться снизу и скользить вниз, чтобы уйти.Полноэкранный снимок с кнопкой Закрыть (X) наверху

Нажмите на кнопку, чтобы открыть нижний лист и на слайде вниз или вверху слева. Кнопка закрытия (X) должна закрыть лист.

Я создал что-то вроде этого:

<android.support.design.widget.CoordinatorLayout 
    .. > 

    <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"> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="Hello Bottom Sheet !!" /> 

    </android.support.v4.widget.NestedScrollView> 

    <include layout="@layout/content_my_activity" /> 

</android.support.design.widget.CoordinatorLayout> 

И я intializing это так:

mBottomSheet = (NestedScrollView) findViewById(R.id.bottom_sheet); 
    mBottomSheetBehavior = BottomSheetBehavior.from(mBottomSheet); 
    mButton = (Button) findViewById(R.id.bottom_sheet_button); 
    mButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED); 
     } 
    }); 

Однако, когда я нажимаю на кнопку, текст просто появляется в нижней части , Перекрытие существующего содержимого по умолчанию. И черный прозрачный оттенок за нижним листом.

Как я могу сделать это во весь экран при нажатии кнопки?

Причина, по которой я не использую фрагмент здесь, у меня есть несколько (много) переменных в зависимости от содержимого нижнего листа. Итак, если я покажу нижний лист через фрагмент, мне нужно передать и получить все данные туда и обратно. Чтобы этого избежать, я хочу, чтобы это было частью деятельности.

Есть ли способ, которым я могу это достичь? Спасибо за вашу помощь.

+0

Это страшная причина не иметь «Фрагмента». –

+0

Я это знаю! :(Существует так много данных, из которых я готовлю содержимое нижнего листа. – kirtan403

+0

И вы не можете сделать это в «Фрагменте», почему именно? –

ответ

0
mButton.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     mBottomsheet.callOnClick(); 
    } 
}); 

Попробуйте этот код ........

0

При нажатии на кнопку, вы можете рассматривать это действие как ваш NestedScrollView контейнер только становятся видимыми, так что будет иметь место, как вы пишете в PARAMS

android:layout_width="match_parent" 
android:layout_height="wrap_content" 

Если вы хотите, чтобы в полной мере родительское высоту просто использовать

android:layout_height="match_parent" 

Если говорить о тень фон, как на фрагменте вы можете обмануть, что вы можете установить фоновый альфа цвет для NestedScrollView

android:background="#64000000" 

Но это хак, вы можете использовать фрагмент и просто отправить всю информацию на нем от деятельности, и наоборот

Смежные вопросы