如何为此类创建透明工具栏和状态栏并覆盖图像?

时间:2018-02-24 18:54:08

标签: java android xml android-actionbar toolbar

我有一个名为fragment_about_sl.xml的xml布局文件和与之关联的类,名为aboutSLFragment.java,扩展为fragment.java。无论如何,我想做的就是让工具栏透明并仅覆盖此类的图像。我是android的新手,所以请帮忙。

fragment_about_sl.xml

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/aboutslscrollview"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.navigationdrawerfragments.aboutSLFragment">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">


<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <android.support.v4.view.ViewPager
        android:id="@+id/viewPager"
        android:layout_width="match_parent"
        android:layout_height="250dp" />

    <LinearLayout
        android:id="@+id/SliderDots"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@id/viewPager"
        android:layout_marginBottom="20dp"
        android:gravity="center_horizontal"
        android:orientation="horizontal" />


</RelativeLayout>



</LinearLayout>

</ScrollView>

aboutSlFragment.java

public class aboutSLFragment extends Fragment{

ViewPager viewPager;
LinearLayout sliderDotspanel;
private int dotscount;
private ImageView[] dots;
TextView aboutsltext;
Button readmorebtn;

public aboutSLFragment() {
// Required empty public constructor
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                     Bundle savedInstanceState) {

View rootView = inflater.inflate(R.layout.fragment_about_sl, container, 
false);
viewPager = (ViewPager) rootView .findViewById(R.id.viewPager);

sliderDotspanel = (LinearLayout)rootView.findViewById(R.id.SliderDots);

ViewPagerAdapter viewPagerAdapter = new ViewPagerAdapter(getContext());

viewPager.setAdapter(viewPagerAdapter);

dotscount = viewPagerAdapter.getCount();
dots = new ImageView[dotscount];

for(int i = 0; i < dotscount; i++){

    dots[i] = new ImageView(getContext());
    dots[i].setImageDrawable(ContextCompat.getDrawable(getContext(), 
R.drawable.non_active_dot));

    LinearLayout.LayoutParams params = new 
LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, 
LinearLayout.LayoutParams.WRAP_CONTENT);

    params.setMargins(8, 0, 8, 0);

    sliderDotspanel.addView(dots[i], params);

}

dots[0].setImageDrawable(ContextCompat.getDrawable(getContext(), 
R.drawable.active_dot));

viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
    @Override
    public void onPageScrolled(int position, float positionOffset, int 
positionOffsetPixels) {

    }

    @Override
    public void onPageSelected(int position) {

        for(int i = 0; i< dotscount; i++){
            dots[i].setImageDrawable(ContextCompat.getDrawable(getContext(), 
R.drawable.non_active_dot));
        }


dots[position].setImageDrawable(ContextCompat.getDrawable(getContext(), 
R.drawable.active_dot));

    }

    @Override
    public void onPageScrollStateChanged(int state) {

    }
});

aboutsltext=(TextView)rootView.findViewById(R.id.aboutsltext);
readmorebtn=(Button)rootView.findViewById(R.id.readmorebtn);
readmorebtn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {

        if (readmorebtn.getText().toString().equalsIgnoreCase("Read More"))
        {
            aboutsltext.setMaxLines(Integer.MAX_VALUE);//your TextView
            readmorebtn.setText("Read Less");
        }
        else
        {
            aboutsltext.setMaxLines(3);//your TextView
            readmorebtn.setText("Read More");
        }
    }
});

// Inflate the layout for this fragment
return rootView;
}

@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
//you can set the title for your toolbar here for different fragments 
different titles
getActivity().setTitle("About Sri Lanka");
}

我希望我的应用程序像这样 expected result

1 个答案:

答案 0 :(得分:0)

您可以在该片段的onResume中执行此操作:

@Override
    public void onResume() {
        super.onResume();
        AppCompatActivity activity = (AppCompatActivity) getActivity();
        ActionBar actionBar = activity.getSupportActionBar();
        actionBar.hide();
    }