是否可以为android的viewpager设置透明

时间:2016-06-14 13:24:32

标签: android view android-viewpager transparent

我希望ViewPager透明,但我无法找到任何方法(它总是有白色,不透明)

我的布局:main_activity.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/wallpaper">

    <android.support.v4.view.ViewPager
        android:id="@+id/view_pager"
        android:background="#00ffffff"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    </android.support.v4.view.ViewPager>
</LinearLayout>

第一个片段的布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:background="#00ffffff"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="AAAAAAAAAAAAAAAA"
        android:id="@+id/textView"
        android:layout_gravity="center_horizontal"/>
</LinearLayout>

第二个片段的布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:background="#00ffffff"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="New Button"
        android:id="@+id/button"
        android:layout_gravity="center_horizontal"/>
</LinearLayout>

我已经为ViewPager的背景和片段的布局设置了透明度。但它始终是白色的。

那么,是否可以为ViewPager设置透明度?你能帮我解释一下(如果有的话)。任何建议将不胜感激。谢谢。

编辑: 我使用了活动的默认主题:

enter image description here

截图: screenshot

3 个答案:

答案 0 :(得分:2)

Awais Soomro回答没有成功,所以我想出了这个:

Fragment.java

@Override
public void onStart() {
    super.onStart();
    getView().setBackgroundColor(Color.TRANSPARENT);
}

甚至......

@Override
public void onViewCreated(final View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

    view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
        @Override
        public void onGlobalLayout() {
            view.getViewTreeObserver().removeOnGlobalLayoutListener(this);
            view.setBackgroundColor(Color.TRANSPARENT);
        }
    });

答案 1 :(得分:1)

这是以下代码: VIEWPAGER

<强> MyFragment.java

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class MyFragment extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.my_fragment, container, false);
    }
}

<强> my_fragment.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:background="#00ffffff"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="AAAAAAAAAAAAAAAA"
        android:textColor="#69f0ae"
        android:id="@+id/textView"
        android:layout_gravity="center_horizontal"/>
</LinearLayout>

<强> Main.java

FragmentPagerAdapter mPagerAdapter = new FragmentPagerAdapter(getSupportFragmentManager()) {
    @Override
    public Fragment getItem(int position) {
        return new MyFragment();
    }

    @Override
    public int getCount() {
        return 1;
    }
};
ViewPager mViewPager = (ViewPager) findViewById(R.id.view_pager);
mViewPager.setAdapter(mPagerAdapter);

<强> main_activity.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/wallpaper">

    <android.support.v4.view.ViewPager
        android:id="@+id/view_pager"
        android:background="#00000000"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    </android.support.v4.view.ViewPager>
</android.support.constraint.ConstraintLayout>

答案 2 :(得分:0)

问题可能不是ViewPager的背景颜色。这可能是ViewPager正在使用的适配器膨胀的观点。更改该视图的背景颜色。