Я пытаюсь реализовать нижний лист из библиотеки дизайна Google. При нажатии на кнопку должен открыться нижний лист, который покрывает все окно активности. Например, когда мы открываем электронное письмо в Inbox от Gmail. Но он должен открываться снизу и скользить вниз, чтобы закрыть его.
Щелчок по кнопке должен открывать нижний лист, а при скольжении вниз или вверху слева кнопка «Закрыть» (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>
И я инициализирую это так:
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);
}
});
Однако, когда я нажимаю кнопку, текст просто появляется внизу. Перекрытие существующего содержимого по умолчанию. И никакого черного прозрачного оттенка за нижним листом.
Как я могу сделать это в полноэкранном режиме при нажатии на кнопку?
Причина, по которой я не использую здесь фрагмент, заключается в том, что у меня есть несколько (много) переменных в зависимости от содержимого нижнего листа. Итак, если я показываю нижний лист через фрагмент, мне нужно передавать и получать все данные туда и сюда. Чтобы этого избежать, я хочу, чтобы это было частью деятельности.
Есть ли способ добиться этого? Спасибо за вашу помощь.
Fragment
. - person Xaver Kapeller   schedule 20.07.2016Fragment
, почему именно? - person Xaver Kapeller   schedule 20.07.2016android:layout_height="wrap_content"
. Высота вашего нижнего листа установлена наwrap_content
, а не наmatch_parent
. - person Xaver Kapeller   schedule 20.07.2016