2017-03-31 16 views
5

मैं ढाल विषय भी स्थिति पट्टी और कार्रवाई बार रंग एक ही ढाल drawable, प्रति प्रलेखन के रूप में हम में स्थिति पट्टी करने के लिए रंग सेट कर सकते हैं चाहिए के रूप में स्थिति पट्टी पृष्ठभूमि सेट करना चाहते हैं एक drawable के रूप में स्थिति पट्टी पृष्ठभूमि सेट करने का तरीकाढाल रंग या में एंड्रॉयड

<item name="android:statusBarDrawable">@drawable/myDrawable</item> 

तरह एपीआई स्तर 21 और इसके बाद के संस्करण

<item name="android:statusBarColor">@color/colorPrimary</item> 

का उपयोग करके लेकिन मैं तलाश कर रहा हूँ कुछ मैं उदाहरण देखा है कि का उपयोग

<item name="android:windowTranslucentStatus">false</item> 
    <item name="android:windowTranslucentNavigation">false</item> 

लेकिन उस मामले स्थिति पट्टी और कार्रवाई बार ओवरलैप में (का उपयोग fitSystemWindow = सच है लेकिन अभी भी हल नहीं) भी https://github.com/jgilfelt/SystemBarTint के साथ इस पुस्तकालय लेकिन फिर भी प्रयास विफल

अग्रिम धन्यवाद की कोशिश !!

उत्तर

20

enter image description here कुछ एक है जो आप निम्नलिखित setContentView से पहले अपनी गतिविधि में विधि()

धन्यवाद का उपयोग कर सकते स्थिति पट्टी पृष्ठभूमि करने के लिए ढाल रंग सेट करना चाहते हैं के लिए आपकी मदद की

संपादित करें के लिए हर एक

यदि उपर्युक्त कोड काम नहीं करता है, तो इसे अपने styles.xml:

में जोड़ने का प्रयास करें
<style name="AppTheme.NoActionBar"> 
    <!-- Customize your theme here. --> 
    <item name="windowActionBar">false</item> 
    <item name="windowNoTitle">true</item> 
</style> 
+0

इस उत्तर से काम नहीं कर के लिए एक शैली बनाएँ। क्या स्टेटस बार में ढाल प्रभाव प्राप्त करने के लिए हमें शैली में कुछ और करने की ज़रूरत है? –

+0

मुझे दिखाओ कि आपने क्या किया है !! यदि यह नीचे है, तो अपने डिवाइस संस्करण कोड की जांच करें। VERSION_CODES.LOLLIPOP का मतलब है 21 या उससे नीचे 21 यदि इस सुविधा से हाँ इस डिवाइस के साथ काम नहीं करता है –

+0

मैंने आपके कोड को लागू किया है जैसा आपने कहा था @ ओवरराइड सुरक्षित शून्य पर क्रेट (बंडल सेव किया गयास्टेंसस्टेट) { सुपर।OnCreate (savedInstanceState); सेटस्टैटसबर्जग्रायंट (यह); setContentView (R.layout.activity_detail); } –

0

सुशांत के जवाब के लिए विस्तार प्राप्त करने के बाद से रंग को हटा दिया गया है और कोटलिन भाषा में।

@RequiresApi(Build.VERSION_CODES.LOLLIPOP) 
fun backGroundColor() { 
    window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS) 
    window.statusBarColor = ContextCompat.getColor(this, android.R.color.transparent) 
    window.navigationBarColor = ContextCompat.getColor(this, android.R.color.transparent) 
    window.setBackgroundDrawableResource(R.drawable.ic_drawable_vertical_background) 
} 

विचार पारदर्शी स्टेटस बार बनाना और पूरी विंडो में पृष्ठभूमि सेट करना है जो एक ही पृष्ठभूमि में स्टेटस बार को कवर करेगा।

0

Step1: नीचे

public class StatusBarView extends View 
{ 
    private int mStatusBarHeight; 

    public StatusBarView(Context context) 
    { 
     this(context, null); 

    } 

    public StatusBarView(Context context, AttributeSet attrs) 
    { 
     super(context, attrs); 
     if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){ 
      setSystemUiVisibility(SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); 
     } 
    } 

    @Override 
    public WindowInsets onApplyWindowInsets(WindowInsets insets) 
    { 
     if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){ 
      mStatusBarHeight = insets.getSystemWindowInsetTop(); 
      return insets.consumeSystemWindowInsets(); 
     } 
     return insets; 
    } 

    @Override 
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) 
    { 
     setMeasuredDimension(MeasureSpec.getSize(widthMeasureSpec),mStatusBarHeight); 
    } 
} 

चरण 2 की तरह एक स्थिति पट्टी वर्ग बनाएँ: नीचे

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <gradient 
     android:type="linear" 
     android:angle="135" 
     android:endColor="#F34D80" 

     android:startColor="#FF5858"/><!--android:centerColor="#C12389"--> 
</shape> 

चरण 3 की तरह एक drawable ढाल बनाने के लिए:

नीचे की तरह एक लेआउट बनाना
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 

    <YOURPACKAGENAME.StatusBarView 
     android:id="@+id/status_bar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@drawable/toolbar_bg_gradient"/> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:background="@drawable/toolbar_bg_gradient" 
     android:elevation="0dp" 
     android:minHeight="?attr/actionBarSize" 
     app:contentInsetStartWithNavigation="0dp" 
     app:popupTheme="@style/AppTheme.PopupOverlay" 
     app:subtitleTextColor="@android:color/white" 
     app:theme="@style/AppTheme.AppBarOverlay" 
     app:titleTextColor="@android:color/white" /> 
</LinearLayout> 

चरण 4: गतिविधि

<style name="AppTheme.NoActionBarMain" parent="Base.Theme.AppCompat.Light"> 
     <item name="windowActionBar">false</item> 
     <item name="android:windowDisablePreview">true</item> 
     <item name="windowNoTitle">true</item> 
     <item name="colorPrimary">@color/colorPrimary</item> 
     <item name="android:windowContentOverlay">@null</item> 
     <item name="android:windowEnableSplitTouch">false</item> 
     <item name="android:splitMotionEvents">false</item> 
     <item name="android:windowDrawsSystemBarBackgrounds" tools:targetApi="lollipop">true</item> 
     <item name="android:statusBarColor" tools:targetApi="lollipop">@android:color/transparent</item> 
     <item name="android:colorForeground">@color/foreground_material_light</item> 
     <item name="windowActionModeOverlay">true</item> 
     <item name="actionModeStyle">@style/LywActionMode</item> 
    </style> 

<style name="LywActionMode" parent="Base.Widget.AppCompat.ActionMode"> 
     <item name="background">@color/colorPrimary</item> 
     <item name="backgroundSplit">@color/colorPrimary</item> 
    </style> 
+0

मैं कक्षा एक अलग फाइल के रूप में (चरण 1) बना सकते हैं या मेरे गतिविधि के वर्ग के लिए है कि कोड को कॉपी करना चाहिए? –

+1

@ ArdaÇebi कोड कॉपी करें और एक वर्ग –

+0

ठीक बनाएं, समझ में आया। –

संबंधित मुद्दे