我试图解决这个问题一段时间后找不到问题。我有一个片段,其中我有ProgressBar集中。这是片段的xml文件内容。
<merge xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" >
<ProgressBar
android:id="@+id/progress_bar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" />
<LinearLayout
android:id="@+id/details_form"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="false"
android:orientation="vertical"
android:visibility="gone" >
...
</LinearLayout>
</merge>
我也有活动,我只是将这个片段添加到活动中。这是活动的xml
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/details_container"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
tools:context=".MyActivity"
tools:ignore="MergeRootFrame" />
问题是当我在我的应用程序中导航到此活动时,进度显示在左侧,它不居中。我不确定为什么会这样,所以我想有人会看到我失踪的东西。感谢。
编辑:
在我的活动代码(MyActivity.java)的onCreate事件中,我有以下代码:
DetailsFragment detailsFragment = new DetailsFragment();
agreementDetailsFragment.setArguments(arguments);
getSupportFragmentManager()
.beginTransaction()
.add(R.id.details_container,
detailsFragment).commit();
在onCreateView中我的片段.java文件中我有这段代码
View rootView = null;
/*
* Get root view
*/
LinearLayout wrapper = new LinearLayout(getActivity());
inflater.inflate(R.layout.details_fragment, wrapper, true);
rootView = wrapper;
答案 0 :(得分:0)
问题是当我在我的应用程序中导航到此活动时 进度显示在左侧,不是居中。我不是 确定为什么会这样,所以我觉得有人会看到我的东西 我失踪了。感谢
merge
标记的布局将作为父LinearLayout
。在LinearLayout
中,android:layout_gravity
将无效,您需要更宽松的布局,例如RelativeLayout
或FrameLayout
(我假设ProgressBar
details_form
LinearLayout
将使用visibility属性替换彼此:
RelativeLayout wrapper = new RelativeLayout(getActivity());
inflater.inflate(R.layout.details_fragment, wrapper, true);