是否可以为android的viewpager设置透明
Posted
技术标签:
【中文标题】是否可以为android的viewpager设置透明【英文标题】:is it possible to set transparent for viewpager of android 【发布时间】:2016-06-14 13:24:31 【问题描述】:我想为ViewPager
设置透明,但我找不到任何方法(它总是白色,不透明)
我的布局:main_activity.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_
android:background="@drawable/wallpaper">
<android.support.v4.view.ViewPager
android:id="@+id/view_pager"
android:background="#00ffffff"
android:layout_
android:layout_ >
</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_
android:layout_>
<TextView
android:layout_
android:layout_
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_
android:layout_>
<Button
style="?android:attr/buttonStyleSmall"
android:layout_
android:layout_
android:text="New Button"
android:id="@+id/button"
android:layout_gravity="center_horizontal"/>
</LinearLayout>
我已经为ViewPager
的背景和片段的布局设置了透明。但它总是白色的。
那么,可以为ViewPager
设置透明吗?你能为我解释一下吗(如果有的话)。任何建议将不胜感激。谢谢。
编辑: 我使用了活动的默认主题:
截图:
【问题讨论】:
试试这个,希望对您有所帮助:link 我已经为每个 *.xml 的背景颜色设置了透明 您是否已经在父布局中使用“半透明”主题?您在父 LinearLayout 中的壁纸颜色是什么? @ErAcube 我不明白“使用半透明”的意思:(。壁纸是一张图片 @vandaics 你的活动主题是什么? 【参考方案1】:Awais Soomro 的回答没有用,所以我想出了这个:
片段.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);
);
【讨论】:
【参考方案2】:下面是代码:
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_
android:layout_>
<TextView
android:layout_
android:layout_
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_
android:layout_
android:background="@drawable/wallpaper">
<android.support.v4.view.ViewPager
android:id="@+id/view_pager"
android:background="#00000000"
android:layout_
android:layout_ >
</android.support.v4.view.ViewPager>
</android.support.constraint.ConstraintLayout>
【讨论】:
【参考方案3】:问题可能不是 ViewPager 的背景颜色。这可能是 ViewPager 正在使用的适配器夸大的视图。更改该视图的背景颜色。
【讨论】:
以上是关于是否可以为android的viewpager设置透明的主要内容,如果未能解决你的问题,请参考以下文章
Android中Scrollview嵌套viewpage问题:viewpage设置非固定高点,按照自定义的scrollview 还是不能解决.
Android使用ViewPager实现轮播图(自动和手动)