我已经尝试在我的BottomSheetDialogFragment中添加边距,但是它对边距没有任何作用。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_margin="16dp">
<TextView
android:id="@+id/alertdialog_fragmail_newmessage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Test 1"
android:textStyle="bold"
android:padding="16dp"
android:textColor="@color/colorBlackFont"
android:layout_alignParentTop="true"
android:gravity="center_vertical"
android:drawablePadding="16dp"/>
//More Textviews
</RelativeLayout>
编辑:_________________________________________________________________
我已经尝试将XML更改为下面的答案,但是它仍然没有为我的bottomsheetdialogfragment创建边距。
底部工作表对话框片段类的代码:
public class FragMailMoreDialog extends BottomSheetDialogFragment {
private static final String TAG = "FragMailMoreDialog";
private Context mContext;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mContext = getContext();
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater,
@Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.alertdialog_layout_fragmailmore, container, false);
ButterKnife.bind(this, view);
return view;
}
}
下面的代码可以用来填充底部表单:
private void inflateMoreDialog(){
FragMailMoreDialog moreDialog = new FragMailMoreDialog();
if (getFragmentManager() != null) {
moreDialog.show(getFragmentManager(), "FRAGMAIL_MORE_DIALOG");
}
}
7条答案
按热度按时间q35jwt9p1#
一个简单的解决方案:
我将我的布局 Package 在另一个RelativeLayout中,并使该布局的背景透明。
在BottomSheetDialogFragment中,您需要覆盖
setupDialog
信用卡属于这个人:
https://stackoverflow.com/a/55219784/11110509
unhi4e5o2#
你可以在
stiles.xml
中做。请注意,要让bottom_margin
工作,你实际上需要添加一个负的marginTop
(参见-10dp),这将使所有内容都向上移动10 dp。7qhs6swi3#
覆盖
setupDialog()
对我不起作用,而且我需要使用onCreateView()
来扩大对话框布局。因此,这可以在定制的BottomSheetDialogFragment
类中以编程方式解决:onCreateDialog
或getTheme()
中为对话框创建一个无背景样式并设置它layoutParams
设置边距Java:
Kotlin:
wpcxdonn4#
不确定为什么要为BottomSheetDialogFragment添加边距。它是一个显示在Activity/Fragment顶部的DialogFragment。向其添加边距不会有任何作用。如果您需要的是TextView的顶部填充(Test1)和TextView的底部填充(Test 2),那么您应该向Test1添加padding_top,向Test 2添加padding_bottom,如下所示:
y1aodyip5#
I为约束子级添加边距,并给予父级约束背景提供透明Bottom Sheet layout Image
tuwxkamq6#
100%工作
覆盖
onCreateDialog()
返回您自己的对话框ibrsph3r7#
类似@Zain的回答: