我在我的活动中使用BottomSheetDialogFragment,对话框在纵向模式下显示全高,但在切换到横向模式时不显示.
MainActivity.java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
CustomBottomSheetDialog customBottomSheetDialog = new CustomBottomSheetDialog();
customBottomSheetDialog.show(getSupportFragmentManager(),customBottomSheetDialog.getTag());
}
}
Run Code Online (Sandbox Code Playgroud)
CustomBottomSheetDialog
public class CustomBottomSheetDialog extends BottomSheetDialogFragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return View.inflate(getContext(), R.layout.view_config, null);
}
}
Run Code Online (Sandbox Code Playgroud)
CustomBottomSheetDialog布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:background="#fdf107"
android:layout_height="wrap_content">
<TextView
android:layout_width="match_parent"
android:layout_height="196dp"
android:gravity="center"
android:textColor="@color/colorAccent"
android:text="BottomSheetDialogFragment"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
在横向模式下,我必须拖动BottomSheetDialogFragment才能看到整个内容.
我知道这是基本的,但我已经挣扎了几个小时,而且我似乎无法应用将字符串转换为日期时间的许多方法中的一种,因此我可以用这种格式将它保存在数据库中2018-03-16 00:12:17.555372。提前谢谢
这是控制台中的字符串输出。
params[:event][:start_date]
"03/28/2018 1:46 AM"
Run Code Online (Sandbox Code Playgroud)
[编辑]根据一些线索,我想出了一些非常肮脏的东西,也许有人可以帮助重构我正在抑制AM或PM,因为我不知道如何解析我知道这太糟糕了,不胜感激!
if !params[:event][:start_date].empty?
start_date = params[:event][:start_date]
start_date = start_date.gsub(/[AMP]/, '').squish
a = start_date.split('/')
tmp = a[0]
a[0] = a[1]
a[1] = tmp
a = a.split(',').join('/')
start_date = Time.parse(a)
end
if !params[:event][:end_date].empty?
end_date = params[:event][:end_date]
end_date = end_date.gsub(/[AMP]/, '').squish
a = end_date.split('/')
tmp = a[0]
a[0] = a[1]
a[1] = tmp
a = a.split(',').join('/')
end_date = Time.parse(a)
end
Run Code Online (Sandbox Code Playgroud)