Android中的片段内容位置

时间:2013-08-01 15:46:42

标签: android android-fragments progress-bar

我试图解决这个问题一段时间后找不到问题。我有一个片段,其中我有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;

1 个答案:

答案 0 :(得分:0)

  

问题是当我在我的应用程序中导航到此活动时   进度显示在左侧,不是居中。我不是   确定为什么会这样,所以我觉得有人会看到我的东西   我失踪了。感谢

merge标记的布局将作为父LinearLayout。在LinearLayout中,android:layout_gravity将无效,您需要更宽松的布局,例如RelativeLayoutFrameLayout(我假设ProgressBar details_form LinearLayout将使用visibility属性替换彼此:

RelativeLayout wrapper = new RelativeLayout(getActivity());
inflater.inflate(R.layout.details_fragment, wrapper, true);