我希望底部对话框的高度扩展到match_parent(作为空活动)
这是我的代码。
- 一月一日**
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import com.google.android.material.bottomsheet.BottomSheetBehavior;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button OpenBottomSheet = findViewById(R.id.open_bottom_sheet);
OpenBottomSheet.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v)
{
BottomSheetDialog bottomSheet = new BottomSheetDialog();
bottomSheet.show(getSupportFragmentManager(),
"ModalBottomSheet");
}
});
}
}
- 一米一米一**
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.Toast;
import androidx.annotation.Nullable;
import com.google.android.material.bottomsheet.BottomSheetBehavior;
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
public class BottomSheetDialog extends BottomSheetDialogFragment {
@Override
public View onCreateView(LayoutInflater inflater, @Nullable
ViewGroup container, @Nullable Bundle savedInstanceState)
{
View v = inflater.inflate(R.layout.buttom_sheet_layout,
container, false);
return v;
}
}
3条答案
按热度按时间f0brbegy1#
要获得全屏BottomSheetDialogFragment,您需要:
getTheme()
,使用以自定义样式应用的android:windowFullscreen
来使用全屏窗口STATE_EXPANDED
状态扩展到整个对话框窗口MATCH_PARENT
behavior.setSkipCollapsed()
禁用底部工作表STATE_HALF_EXPANDED
将其应用到您的课堂:
这是全屏的自定义样式:
如果使用的是"材质3",则改为从
Theme.Material3.DayNight.BottomSheetDialog
扩展样式。太棒了!但是顶部的栏不会隐藏
您可以通过设置窗口下方标志使底部工作表隐藏状态栏;上述类别更新为:
同样对于带凹槽的设备,您需要将
android:windowLayoutInDisplayCutoutMode
设置为样式:qij5mzcb2#
通过将以下代码行添加到BottomSheetDialog类中,可以将BottomSheetDialog的高度设置为match_parent:
此代码重写onStart()方法,该方法在显示BottomSheetDialog时调用。它获取BottomSheetDialog的视图,将视图的高度设置为
或者,您可以在onCreateView方法中使用此行:
这一行将底部工作表对话框的宽度和高度设置为match_parent,使其占据整个屏幕。
zc0qhyus3#
有一个对我有用的技巧方法,可以修改行为和设置窗口高度以实现全屏效果。