Her*_*rst 16 layout user-interface android android-fragments android-dialogfragment
使用片段时,我的布局会受到顶部额外空间的干扰,我不知道它来自何处.它看起来像这样:
这个空地的可能来源是什么?我还没有找到主题或一些样式设置,或者这个空间是否留给了动作栏?我真的想摆脱这个.
以下是相应的布局xml和实例化对话框的代码:
XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_margin="5dp"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ProgressBar
android:layout_margin="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/search_progress"
style="?android:attr/progressBarStyle"
android:indeterminate="true" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/search_progress"
android:text="Searching for:" />
<TextView
android:id="@+id/searchingNameTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:layout_alignBottom="@+id/search_progress"
android:layout_alignLeft="@+id/textView1"
android:text="Barcelona" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
Java的:
FragmentManager fm = this.getSupportFragmentManager();
mSearchingDialog = new SearchingDialogFragment();
Bundle bundle = new Bundle();
bundle.putString("name", mCityToAdd.userName());
mSearchingDialog.setArguments(bundle);
mSearchingDialog.show(fm, TAG);
Run Code Online (Sandbox Code Playgroud)
我也在这里问过这个问题,认为这是一个与scrollview相关的问题,但是空间出现在我的所有片段中:
ser*_*nka 24
尝试调用getWindow().requestFeature(Window.FEATURE_NO_TITLE);
权之前 setContentView(R.layout.<dialog_layout>);
在onCreate()
和onCreateView()
你对话的方法.
let*_*ves 21
有两种方法可以重用/删除顶部的空白空间DialogFragment
.
如果你想简单删除它:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE); // <--
View view = inflater.inflate(R.layout.fragment_dialog, container, false);
return view;
}
Run Code Online (Sandbox Code Playgroud)
如果要将其重用于对话框标题:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
getDialog().setTitle("Some title..."); // <--
View view = inflater.inflate(R.layout.fragment_dialog, container, false);
return view;
}
Run Code Online (Sandbox Code Playgroud)
还有一个解决方案:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setStyle(STYLE_NO_TITLE, getActivity().getApplicationInfo().theme);
}
Run Code Online (Sandbox Code Playgroud)
此示例使用应用程序默认主题。另请注意,setStyle()
需要调用onCreate()
而不是onCreateView()
产生效果。
归档时间: |
|
查看次数: |
13961 次 |
最近记录: |