我希望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
设置透明度?你能帮我解释一下(如果有的话)。任何建议将不胜感激。谢谢。
编辑: 我使用了活动的默认主题:
答案 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)
<强> 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正在使用的适配器膨胀的观点。更改该视图的背景颜色。