Я пытаюсь создать полноэкранную нижнюю таблицу в коде, но не могу этого достичь. Я попробовал почти все методы в других ответах, но моя нижняя таблица занимает только 75% экрана и должна быть перетащена наверх. Я также использую привязку вида в android studio 4.0
Вот мой код:
In main_activity. xml
<FrameLayout
android:id="@+id/bottom_home"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior"
app:behavior_fitToContents="false">
</FrameLayout>
content_bottom_sheet. xml
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/linear_bottom"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/expense_bottom_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:gravity="center"
android:text="Expense Bottom Sheet"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/fab_bottom"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="176dp"
android:layout_marginBottom="16dp"
android:clickable="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:srcCompat="@drawable/ic_add_clip" />
</androidx.constraintlayout.widget.ConstraintLayout>
Внутри Основная деятельность :
private void openBottom(){
ExpenseBottomDialog frag = new ExpenseBottomDialog();
frag.show(getSupportFragmentManager(), frag.getTag());
}
In bottomFragment
public class ExpenseBottomDialog extends BottomSheetDialogFragment {
ContentExpenseBottomSheetBinding binding;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
binding = ContentExpenseBottomSheetBinding.inflate(getLayoutInflater());
return binding.getRoot();
}
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
BottomSheetDialog dialog = (BottomSheetDialog) super.onCreateDialog(savedInstanceState);
binding = ContentExpenseBottomSheetBinding.inflate(getActivity().getLayoutInflater());
dialog.setOnShowListener(new DialogInterface.OnShowListener() {
@Override
public void onShow(DialogInterface dialog) {
ViewGroup.LayoutParams params = binding.linearBottom.getLayoutParams();
params.height = Resources.getSystem().getDisplayMetrics().heightPixels;
binding.linearBottom.setLayoutParams(params);
ActivityMainBinding main = ActivityMainBinding.inflate(getActivity().getLayoutInflater());
BottomSheetBehavior<View> behavior = BottomSheetBehavior.from(main.bottomHome);
behavior.setSkipCollapsed(true);
//behavior.setState(BottomSheetBehavior.STATE_EXPANDED);
}
});
return dialog;
}
}
Это то, что я получаю, и мне нужно перетащить, чтобы открыть потрясающее изображение ниже