অ্যাকশনবারের নীচে ছায়া সরান


208

আমি অ্যাকশনবার্লক ব্যবহার করি। নীচের কোডটির টুকরোটি এর পটভূমিকে কাস্টম হিসাবে পরিবর্তন করার জন্য দায়ী।

<style name="Widget.Styled.ActionBar" parent="Widget.Sherlock.ActionBar">
    <item name="background">@drawable/actionbar_bg</item>
    <item name="android:background">@drawable/actionbar_bg</item>
    <...>  
</style>

<style name="Theme.MyApp" parent="@style/Theme.Sherlock.Light">
    <item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
    <item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
    <..>
</style>

এবং এটি অ্যাকশনবার্লক জন্য কাজ করে (মধুচক্রের নীচের সংস্করণগুলিতে)। তবে আইসিএসে আমার অ্যাকশনবারের নীচে ছায়া রয়েছে যা আমি চাই না। এটি অদৃশ্য করার জন্য স্টাইল আইটেমটি কী?

উত্তর:


481

এটি অদৃশ্য করার জন্য স্টাইল আইটেমটি কী?

ছায়াটি সরাতে আপনার অ্যাপ্লিকেশন থিমটিতে এটি যুক্ত করুন:

<style name="MyAppTheme" parent="android:Theme.Holo.Light">
    <item name="android:windowContentOverlay">@null</item>
</style>

আপডেট: @ কুইনি 898 যেমন বলেছে, অ্যান্ড্রয়েড 5.0 এ এটি পরিবর্তিত হয়েছে, আপনাকে setElevation(0)আপনার অ্যাকশন বারে কল করতে হবে । মনে রাখবেন যে আপনি যদি সমর্থন লাইব্রেরি ব্যবহার করছেন তবে আপনাকে অবশ্যই এটির জন্য এটি কল করতে হবে:

getSupportActionBar().setElevation(0);

স্ট্যাটাস বারের নীচে থেকে ছায়া সরিয়ে ফেলা স্টাইল নয়, অ্যাকশনবার নয়?
মিশা কে 11

96
ধন্যবাদ, এটি অদৃশ্য হয়ে গেল। গুরুত্বপূর্ণ বিষয়টি লক্ষণীয় হ'ল এই লাইন কোডটি অ্যাকশনবারের শৈলীতে নয়, অ্যাপ থিমটিতে উপস্থিত হওয়া উচিত।
মিশা কে 11

3
আমি কাজ! যা স্পষ্ট হওয়া দরকার তা হল এই কোডের লাইনটি অ্যাপ থিম ট্যাগে যুক্ত করা উচিত, অ্যাকশনবার থিম ট্যাগ নয়।
tuoxie007

এবং আরেকটি বিষয় যা লক্ষ্য করা উচিত তা হ'ল আপনার থিমটি মান, মান-ভি 11, মান-
ভি

6
প্রাক-ললিপপ ডিভাইসগুলির জন্য getSupportActionBar().setElevation(0);কাজ করে না। সুতরাং আপনি <item name="android:windowContentOverlay">@null</item>আপনার অ্যাপ্লিকেশন থিমটি রেখেছেন । আমারও একই সমস্যা ছিল। এখন আমি তাদের দুজনেই রেখেছি। অ্যাপ্লিকেশন থিমটিতে উইন্ডো কনটেন্ট ওভারলে আইটেম থেকে সেটএলভিশন এবং যুক্ত হয়েছে। সেটএলভিশন অ্যান্ড্রয়েড 5.0 এবং তার জন্য কাজ করে অন্যটি প্রি-ললিপপের জন্য কাজ করে। চিয়ার্স!
রিয়াজ মুর্শেদ

140

অ্যান্ড্রয়েড 5.0 এর জন্য, আপনি যদি সরাসরি স্টাইল ব্যবহারের মধ্যে সেট করতে চান:

<item name="android:elevation">0dp</item>

এবং সমর্থন লাইব্রেরি সামঞ্জস্যতা ব্যবহারের জন্য:

<item name="elevation">0dp</item>

অ্যাপকম্প্যাট আলো থিমের শৈলীর উদাহরণ:

<style name="Theme.MyApp.ActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
    <!-- remove shadow below action bar -->
    <!-- <item name="android:elevation">0dp</item> -->
    <!-- Support library compatibility -->
    <item name="elevation">0dp</item>
</style>

তারপরে আপনার কাস্টম অ্যাকশনবার স্টাইলটি অ্যাপ অ্যাপ্লিকেশনটিতে প্রয়োগ করুন:

<style name="Theme.MyApp" parent="Theme.AppCompat.Light">
    <item name="actionBarStyle">@style/Theme.MyApp.ActionBar</item>
</style>

প্রাক 5.0 অ্যান্ড্রয়েডের জন্য, এটি আপনার অ্যাপ্লিকেশন থিমটিতে যুক্ত করুন:

<!-- Remove shadow below action bar Android < 5.0 -->
<item name="android:windowContentOverlay">@null</item>

1
5.0 পূর্বের ডিভাইসের জন্য আমার পক্ষে কাজ করেনি। সমস্যাটি ছিল, আমি windowContentOverlayঅ্যাপ থিমটিতে নয়, অ্যাকশন বার থিমটিতে যুক্ত করেছি।
অলিভ

আমি দুঃখিত তবে আমি বিপরীত কাজটি করার চেষ্টা করছি, উন্নয়নের ছায়াটি প্রাক-ললিপপ ডিভাইসে আসলে উপস্থিত করুন (আমি ললিপপ ডিভাইসের সাথে এটি পরিচালনা করতে পেরেছি android:elevation)। আমি এই পদ্ধতির ব্যবহার করে এটি করতে পরিচালিত করতে পারি না। আমি বিশ্বাস করি এটি মোটামুটি সোজা হবে। উচ্চতা বৈশিষ্ট্যগুলির জন্য একটি শূন্য-মান রাখুন এবং এটিই হবে।
একরপো

আপনি অ্যান্ড্রয়েড: উইন্ডো কনটেন্ট ওভারলে বৈশিষ্ট্যটি স্পর্শ না করলে এটি ডিফল্টরূপে দৃশ্যমান হওয়া উচিত, আপনি সঠিক থিম ব্যবহার করছেন কিনা তা যাচাই করে দেখুন ... আমার মনে হয় আপনার একটি অ্যাপকম্প্যাট থিম ব্যবহার করা দরকার।
স্লোশ

তবে কীভাবে android:windowContentOverlayপ্রাক ললিপপ এপিআই এ মোকাবেলা করবেন ? আমার minSDK প্রি ললিপপ হয় তবে আমি লক্ষ্য 21?
Opiatefuchs

2
এই কাজ কিন্তু শুধুমাত্র যখন আমি ব্যবহার <style name="Theme.MyApp.ActionBar" parent="Widget.AppCompat.Light.ActionBar.Solid.Inverse">ছাড়া style/parentঅ্যাট্রিবিউট।
ইগোর

103

অ্যান্ড্রয়েড 5.0 এ এটি পরিবর্তিত হয়েছে, আপনাকে আপনার অ্যাকশন বারে সেটএলভিশন (0) কল করতে হবে। মনে রাখবেন যে আপনি যদি সমর্থন লাইব্রেরি ব্যবহার করছেন তবে আপনাকে অবশ্যই এটির জন্য এটি কল করতে হবে:

getSupportActionBar().setElevation(0);

এটি উইন্ডো কনটেন্ট ওভারলে স্টাইল আইটেম দ্বারা প্রভাবিত নয়, সুতরাং শৈলীতে কোনও পরিবর্তন প্রয়োজন হয় না


1
আপনার কি প্রতিটি ক্রিয়াকলাপের জন্য এটি করতে হবে, বা সমস্ত ক্রিয়াকলাপে এটি প্রয়োগ করার জন্য কোনও দ্রুত পদ্ধতি আছে? আমি এই মুহূর্তে আমার সমস্ত ক্রিয়াকলাপ যুক্ত করব। ধন্যবাদ!
সিএনএফডাব্লু

এটি অন্য কোনও অ্যাকশনবার পদ্ধতির মতো (যেমন শিরোনাম), আমি প্রতিটি ক্রিয়াকলাপটি বলব
কেয়ারন

এটা লজ্জার. স্টাইলস.এক্সএমএল ফাইলটিতে এই জাতীয় প্যারামিটার সেট করা ভাল হবে। সম্ভবত এটি ভবিষ্যতের আপডেটে আসবে
cnfw

এটি 5.0 এর চেয়ে কম সংস্করণে কাজ করছে না। সাপোর্ট অ্যাকশনবারটি কি পূর্ববর্তী সমস্ত ডিভাইসের সাথে সামঞ্জস্যপূর্ণ বলে মনে হচ্ছে না?
স্প্লিন্টার 123

@ স্প্লিন্টার ১২৩ এর মতো এখানেই :( ভাবুন কীভাবে আমি অ্যাপকম্প্যাটটি ব্যবহার করার সময় প্রাক-ললিপপে ছায়াগুলি সরিয়ে ফেলতে পারি
FD_

55

যোগ app:elevation="0dp"appbar মধ্যে ছায়া লুকানোর জন্য AppBarLayout মধ্যে


1
সবাইকে দেখুন, কেবল এই সমাধানটি প্রয়োগ করুন এবং অন্য প্রত্যেকে যা বলেছেন তা ভুলে যান। ধন্যবাদ মানুষ! এটা কাজ করে! খুব সহজ সমাধান!
এস ব্রুস

1
এর মতো ব্যবহার করুন: <android.support.design.widget.appBarLayout অ্যান্ড্রয়েড: লেআউট_উইথ = "ম্যাচ_প্যারেন্ট" অ্যান্ড্রয়েড: বিন্যাস_ উচ্চতা = "র‌্যাপ_কন্টেন্ট" অ্যাপ: উচ্চতা = "0 ডিপি" অ্যান্ড্রয়েড: থিম = "@ শৈলী / অ্যাপ থিম.অ্যাপবারোভারলে"
ভারত কুল রতন

@ মার্কোফেরারি অ্যাপব্লারআউট'এর ক্ষেত্রে 'getSupportActionBar ()। SetElevation (0) হিসাবে ব্যবহার করুন;' কাজ করে না
সলিল ধাওয়ান

39

আপনি যদি অ্যাকশনবারারলক নিয়ে কাজ করছেন

আপনার থিম এ এটি যোগ করুন:

<style name="MyTheme" parent="Theme.Sherlock">
    ....
    <item name="windowContentOverlay">@null</item>
    <item name="android:windowContentOverlay">@null</item>
    ....
</style>

এটি আরও ভাল উত্তর, এটি সামঞ্জস্য আইটেমটি উল্লেখ করে
1owk3y

25

আপনার অবশ্যই সেটআপ app:elevation="0dp"করুন android.support.design.widget.AppBarLayoutএবং তারপরে এটি কার্যকর হয়।

<android.support.design.widget.AppBarLayout
    app:elevation="0dp"... >

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="@android:color/transparent"
        app:popupTheme="@style/AppTheme.PopupOverlay" >


    </android.support.v7.widget.Toolbar>

</android.support.design.widget.AppBarLayout>

1
এর কারণ হিসাবে, অ্যাপবারের ছায়া সর্বত্র দূরে রয়েছে - আমি কীভাবে সেই প্রোগ্রামটিকে নিয়ন্ত্রন করতে পারি?
সুইস

14
app:elevation="0dp" 

কিন্তু না

android:elevation="0dp"

অ্যান্ড্রয়েড এল এ আমার জন্য কাজ করেছে


2

আমারও একই সমস্যা রয়েছে এবং আমি এই সমস্যাটি সফলভাবে সমাধান করেছি। আপনাকে যা করতে হবে তা হল যে ক্রিয়াকলাপে আপনি উচ্চতা সরাতে চান সেই স্থানে উচ্চতর স্থানটিকে 0 ভাসমান বিন্দুতে পরিবর্তন করতে হবে।

আপনি যদি এমন কোনও ক্রিয়াকলাপে এটি পরিবর্তন করতে চান তবে আপনাকে প্রথমটি গ্রহণ MyActivity.javaকরতে হবে ActionBar

প্রথমে ActionBarক্লাস আমদানি করুন

import android.support.v7.app.ActionBar;

আমদানির পরে আপনাকে অ্যাকশন বারের একটি পরিবর্তনশীল আরম্ভ করতে হবে এবং এর উচ্চতা 0তে সেট করতে হবে।

 private ActionBar toolbar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    .
    .
    toolbar=getSupportActionBar();
    toolbar.setElevation(0);
    .
    .
    }

1

Xamarin ডেভেলপারদের জন্য, ব্যবহার করুন: SupportActionBar.Elevation = 0;জন্য AppCompatActivityবা ActionBar.Elevation = 0;অ compat কার্যকলাপের জন্য


1

জন্য সমাধান Kotlin (অ্যান্ড্রয়েড 3.3, Kotlin 1.3.20)

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    supportActionBar!!.elevation = 0f
}

কেন এটিকে নিম্নবিত্ত করা হচ্ছে তা নিশ্চিত নয় (কোটলিনে আমি নতুন) তবে এটি আমার জন্য কাজ করেছিল যেখানে অন্যরা করেনি
অ্যালেন উইকস্টেড

1

এটি চেষ্টা করুন এটি থিম পরিবর্তন না করে আমাকে সহায়তা করেছে। আপনার অ্যাপবারআলআউটটিকে যেকোন বিন্যাসের ভিতরে রাখুন ope এটি আপনাকে সহায়তা করবে ope

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
<android.support.design.widget.AppBarLayout
    android:id="@+id/app_bar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:fitsSystemWindows="false"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">


    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
        android:layout_height="?attr/actionBarSize"
       android:background="@color/white">
        <ImageView
            android:src="@drawable/go_grocery_logo"
            android:layout_width="108dp"
            android:layout_height="32dp" />
    </android.support.v7.widget.Toolbar>


</android.support.design.widget.AppBarLayout>
</RelativeLayout>

0

যারা খণ্ডগুলিতে কাজ করছেন এবং এটি নির্ধারণ toolbar.getBackground().setAlpha(0);বা কোনও নিখোঁজ হওয়ার পরে অদৃশ্য হয়ে গেছে, আমি মনে করি আপনাকে নিজের অ্যাপবারলআউটটি এক্সএমএলে শেষের দিকে আনতে হবে, সুতরাং এর খণ্ডটি তারপরে অ্যাপবারলআউট, তারপরে আপেক্ষিক আউট / সীমাবদ্ধতা / লাইনারি আপনি যে কোনও ক্ষেত্রেই ব্যবহার করুন।


0

এটি toolbar.getBackground().setAlpha(0);অনক্রিয়েট পদ্ধতির অভ্যন্তরে যুক্ত করুন। এটি যুক্ত করুন: android:elevation="0dp" android:background="@android:color/transparent আপনার সরঞ্জামদণ্ডের এক্সএমএল ফাইলটিতে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.