将DialogFragment置于中心位置

时间:2014-07-09 21:14:35

标签: android webview android-dialogfragment

我终于想出了一个(主要是复制粘贴代码)在应用程序中播放动画GIF的简单方法,以便我可以将它用作预加载器。我在DialogFragment内使用WebView。一切都很好,除了图像显示在屏幕的左角,垂直居中。这是我在DialogFragment内的代码:

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_please_wait, container, false);
        WebView gifPlayer = (WebView) view.findViewById(R.id.gifPlayer);
        gifPlayer.loadUrl("file:///android_asset/img/preloader_7.gif");
        gifPlayer.setBackgroundColor(0x00000000);

        // http://stackoverflow.com/questions/9698410/position-of-dialogfragment-in-android
        getDialog().getWindow().setGravity(Gravity.CENTER);
        getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
        getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE);
        getDialog().getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

        return view;
    }  

和我的XML:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:background="@android:color/transparent"
    android:orientation="vertical" >

    <WebView
        android:background="@android:color/transparent"
        android:id="@+id/gifPlayer"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true" />

</RelativeLayout>  

如何将其放置在屏幕中央?

2 个答案:

答案 0 :(得分:0)

只需在webview标记中添加xml文件即可: 机器人:layout_gravity = “中心”

答案 1 :(得分:0)

Youre RelativeLayout的宽度必须为“fill_parent”才能生效。

你的编辑应该给你一个警告,至少Android Studio会这样做。

试试这个:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:gravity="center"
android:background="@android:color/transparent"
android:orientation="vertical" >

<WebView
    android:background="@android:color/transparent"
    android:id="@+id/gifPlayer"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true" />