কিভাবে পর্দার উপরে অ্যাডমব স্থাপন করবেন (উপরে) Android অ্যাকশনবার?

I trying to place an AdMob ad at the top of the screen (above) the Android Actionbar. ActionBar AdMob above

  • হলুদ = অ্যাকশনবার
  • লাল = বিষয়বস্তু
  • সবুজ = অ্যাডমব

একটি অনুরূপ প্রশ্ন আমি একটি পর্দা নীচে একটি বিজ্ঞাপন স্থাপন করা হয় অ্যাকশনবার দেখাচ্ছে সঙ্গে। কিন্তু এ পর্যন্ত আমি পর্দার শীর্ষে এটি কীভাবে স্থাপন করব তা আমি বুঝতে পারিনি।

আমি এই ভাবে চেষ্টা করেছিলাম:

private AdView adView;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

   //main view setup
    setContentView(R.layout.main);
    this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

   //actionbar setup
    ActionBar actionBar = getActionBar();
    actionBar.setTitle("Search");
    actionBar.setDisplayHomeAsUpEnabled(true);

    final LinearLayout content = (LinearLayout) findViewById(android.R.id.content).getParent();

   //Create the adView
    adView = new AdView(this, AdSize.BANNER, "ID");

   //Lookup your LinearLayout assuming it’s been given
   //the attribute android:id="@+id/mainLayout"

   //Add the adView to it
    FrameLayout.LayoutParams parm = (FrameLayout.LayoutParams) content.getLayoutParams();
    parm.gravity = Gravity.TOP;
    content.addView(adView);

   //Initiate a generic request to load it with an ad
    AdRequest adRequest = new AdRequest();
    adRequest.addTestDevice("TEST_DEVICE_ID");
    adView.loadAd(adRequest);
}

নীচে আপনি আমার অ্যাপের অনুক্রমের দর্শকদের একটি অংশ দেখতে পারেন। দেখুন "আইডি/প্রধান" আমার প্রধান বিন্যাস। আপনি ছবিতে দেখতে পারেন অ্যাকশনবারের একটি আইডি "id/action_bar_container" নামক একটি আইডি আছে। উপরে আমার কোডে আমি ফ্রেমলয়াউট "সামগ্রী" অ্যাক্সেস করতে সক্ষম হয়েছিলাম কিন্তু আমি action_bar_container ভিউ অ্যাক্সেস করতে পারিনি। যেহেতু তারা একই শ্রেণীকক্ষ স্তরের (আমি মনে করি) যেহেতু যেকোনোভাবে অ্যাকশনবার দর্শন অ্যাক্সেস করা সম্ভব হবে।

enter image description here

কিন্তু এটা কাজ করে নি:

Without ActionBar displayed

কোন ধারণাটি কীভাবে অর্জন করা যায় এবং কিভাবে এটি কাজ করতে পারে বা একটি অফিসিয়াল বিবৃতি যা এটি কাজ করে না তা অর্জন করতে পারে।

5
@ viperbone হাই, আপনার কি সম্পূর্ণ নমুনা সমাধান কোড আছে? আমি কিছু সমস্যা ছিল এবং এই টুকরা করার চেষ্টা করুন
যোগ লেখক Gorets, উৎস
@ viperbone হাই, আপনার কি সম্পূর্ণ নমুনা সমাধান কোড আছে? আমি কিছু সমস্যা ছিল এবং এই টুকরা করার চেষ্টা করুন
যোগ লেখক Gorets, উৎস
আপনি আড়াআড়ি মোডে অ্যাকশন বারের উপরে কিছু রাখেন না, আমি সপ্তাহের জন্য কয়েক সপ্তাহ ধরে আছি, যতক্ষণ না আমি অবশেষে ছেড়ে দেই এবং শীর্ষে আমার নিজের বার রাখি, যদি আপনি প্রতিকৃতিতে থাকেন তবে - এটি আপনাকে stackoverflow.com/questions/16002217/…
যোগ লেখক Lena Bru, উৎস
আপনি আড়াআড়ি মোডে অ্যাকশন বারের উপরে কিছু রাখেন না, আমি সপ্তাহের জন্য কয়েক সপ্তাহ ধরে আছি, যতক্ষণ না আমি অবশেষে ছেড়ে দেই এবং শীর্ষে আমার নিজের বার রাখি, যদি আপনি প্রতিকৃতিতে থাকেন তবে - এটি আপনাকে stackoverflow.com/questions/16002217/…
যোগ লেখক Lena Bru, উৎস
হ্যাঁ আমি পরিবর্তে TabIndicator ব্যবহার করেছি, এটি একটি দর্শকের সাথে স্বাভাবিক তালিকা মত, যা বাস্তবায়ন করা সহজ ছিল, কিন্তু এটি অ্যাক্সেসবারের মতো ঠিক দেখাচ্ছে না
যোগ লেখক Lena Bru, উৎস
হ্যাঁ আমি পরিবর্তে TabIndicator ব্যবহার করেছি, এটি একটি দর্শকের সাথে স্বাভাবিক তালিকা মত, যা বাস্তবায়ন করা সহজ ছিল, কিন্তু এটি অ্যাক্সেসবারের মতো ঠিক দেখাচ্ছে না
যোগ লেখক Lena Bru, উৎস
উত্তরের জন্য ধন্যবাদ. মনে হচ্ছে আপনার সমাধান কেবল ন্যাভিগেশন মডিড ট্যাবগুলি সক্রিয় থাকলেই কাজ করে? তাই আপনি অন্য কোনও সমাধান খুঁজে পাননি এবং আপনার নিজস্ব শিরোনাম বার তৈরি করেছেন এবং অ্যাক্সেসবার ব্যবহার করছেন না?
যোগ লেখক Bruno Bieri, উৎস
উত্তরের জন্য ধন্যবাদ. মনে হচ্ছে আপনার সমাধান কেবল ন্যাভিগেশন মডিড ট্যাবগুলি সক্রিয় থাকলেই কাজ করে? তাই আপনি অন্য কোনও সমাধান খুঁজে পাননি এবং আপনার নিজস্ব শিরোনাম বার তৈরি করেছেন এবং অ্যাক্সেসবার ব্যবহার করছেন না?
যোগ লেখক Bruno Bieri, উৎস
@ গোরটস না, দুঃখিত, আমি সেই ক্ষেত্রে আপনাকে সাহায্য করতে পারছি না।
যোগ লেখক Bruno Bieri, উৎস

9 উত্তর

আপনি getRootView() ব্যবহার করে getDecorView পেতে কোনও দৃশ্য বা getWindow() getDecorView() ব্যবহার করতে পারেন। এটি একটি শিশু আছে - একটি উল্লম্ব <�কোড> লিনিয়ার এলয়েট ।

প্রথম সন্তানের হিসাবে আপনার বিন্যাস যুক্ত করুন।

মনে রাখবেন এটি একটি খারাপ, খারাপ ধারণা। ব্যবহারকারীর অভিজ্ঞতার দৃষ্টিকোণ থেকে, এটি সমস্ত ডিজাইন নির্দেশিকাগুলির বিরুদ্ধে একটি ভয়ঙ্কর ধর্মঘট। ডিজাইনের কারণে প্রচুর সংখ্যক অ্যাকশন বারটি শীর্ষে থাকতে হবে।

দ্বিতীয়, এই ই এম-থিমযুক্ত ডিভাইস বিরতি হতে পারে।

তৃতীয়, আড়াআড়ি ট্যাবলেট সম্পর্কে কি, আপনি কি সত্যিই শীর্ষে এত বিশাল বার পাবেন?

উপসংহারে, হ্যাঁ, এটা সম্ভব কিন্তু এটি একটি ভয়ঙ্কর ধারণা। এটা করবেন না।

6
যোগ
সাবধান হও! এটা আমার গ্যালাক্সি এস 3 মিনিটের জন্য ঠিক, কিন্তু আমার গ্যালাক্সি এস 4 এ com.android.internal.widget.ActionBarOverlayLayout এর পরিবর্তে লিনিয়ারআউট। আমার জন্য উন্নততর সমাধানটি আমার নিজের লিনিয়ারআউটটি সাজসজ্জা এবং সামগ্রীর জন্য দেখুন।
যোগ লেখক Vladyslav Savchenko, উৎস

আপনি getRootView() ব্যবহার করে getDecorView পেতে কোনও দৃশ্য বা getWindow() getDecorView() ব্যবহার করতে পারেন। এটি একটি শিশু আছে - একটি উল্লম্ব <�কোড> লিনিয়ার এলয়েট ।

প্রথম সন্তানের হিসাবে আপনার বিন্যাস যুক্ত করুন।

মনে রাখবেন এটি একটি খারাপ, খারাপ ধারণা। ব্যবহারকারীর অভিজ্ঞতার দৃষ্টিকোণ থেকে, এটি সমস্ত ডিজাইন নির্দেশিকাগুলির বিরুদ্ধে একটি ভয়ঙ্কর ধর্মঘট। ডিজাইনের কারণে প্রচুর সংখ্যক অ্যাকশন বারটি শীর্ষে থাকতে হবে।

দ্বিতীয়, এই ই এম-থিমযুক্ত ডিভাইস বিরতি হতে পারে।

তৃতীয়, আড়াআড়ি ট্যাবলেট সম্পর্কে কি, আপনি কি সত্যিই শীর্ষে এত বিশাল বার পাবেন?

উপসংহারে, হ্যাঁ, এটা সম্ভব কিন্তু এটি একটি ভয়ঙ্কর ধারণা। এটা করবেন না।

6
যোগ
সাবধান হও! এটা আমার গ্যালাক্সি এস 3 মিনিটের জন্য ঠিক, কিন্তু আমার গ্যালাক্সি এস 4 এ com.android.internal.widget.ActionBarOverlayLayout এর পরিবর্তে লিনিয়ারআউট। আমার জন্য উন্নততর সমাধানটি আমার নিজের লিনিয়ারআউটটি সাজসজ্জা এবং সামগ্রীর জন্য দেখুন।
যোগ লেখক Vladyslav Savchenko, উৎস
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.SherlockActivity;

public class MainActivity extends SherlockActivity {
private ActionBar bar;
@Override
protected void onCreate(Bundle savedInstanceState) {
    setTheme(R.style.Theme_Sherlock);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    bar = getSupportActionBar();
    LayoutInflater inflater =       (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View customView = (View)inflater.inflate(R.layout.custom_view, null); //<-- put your ad instead of this
    bar.setDisplayOptions(
            ActionBar.DISPLAY_SHOW_CUSTOM,
            ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME
                    | ActionBar.DISPLAY_SHOW_TITLE);
    bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    bar.setCustomView(customView, new ActionBar.LayoutParams(
            ViewGroup.LayoutParams.MATCH_PARENT,
            ViewGroup.LayoutParams.MATCH_PARENT));
}

 @Override
    public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
        getSupportMenuInflater().inflate(R.menu.test_menu, menu);
        return super.onCreateOptionsMenu(menu);
    }
 }
0
যোগ
অ্যান্ড্রয়েড অ্যাকশনবারের সাথে এটি কীভাবে কাজ করতে পারে তা আপনার কাছে কোন ধারণা আছে?
যোগ লেখক Bruno Bieri, উৎস
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.SherlockActivity;

public class MainActivity extends SherlockActivity {
private ActionBar bar;
@Override
protected void onCreate(Bundle savedInstanceState) {
    setTheme(R.style.Theme_Sherlock);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    bar = getSupportActionBar();
    LayoutInflater inflater =       (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View customView = (View)inflater.inflate(R.layout.custom_view, null); //<-- put your ad instead of this
    bar.setDisplayOptions(
            ActionBar.DISPLAY_SHOW_CUSTOM,
            ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME
                    | ActionBar.DISPLAY_SHOW_TITLE);
    bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    bar.setCustomView(customView, new ActionBar.LayoutParams(
            ViewGroup.LayoutParams.MATCH_PARENT,
            ViewGroup.LayoutParams.MATCH_PARENT));
}

 @Override
    public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
        getSupportMenuInflater().inflate(R.menu.test_menu, menu);
        return super.onCreateOptionsMenu(menu);
    }
 }
0
যোগ
অ্যান্ড্রয়েড অ্যাকশনবারের সাথে এটি কীভাবে কাজ করতে পারে তা আপনার কাছে কোন ধারণা আছে?
যোগ লেখক Bruno Bieri, উৎস

যতদূর আমি জানি, একবার আপনি অ্যাকশনবারের সাথে কাজ করার জন্য চয়ন করেন, এটি আপনার লেআউটের চেয়ে উচ্চতর স্তরে (UI পংক্তির) যোগ করা হয়।

অর্থ যেখানে এটি স্থাপন করা হয় তার কোন নিয়ন্ত্রণ নেই এবং এটির উপরে কী স্থাপন করা হয়েছে।

আপনার লেআউটটি অ্যাকশন বারের নিচে শুরু হয় এবং পর্দার নীচে শেষ হয়।

আমার মতে, আপনি যদি যা চান তা করার একটি উপায় খুঁজে পান তবে এটি খুব প্যাচী হবে।

0
যোগ
হাই ডোর, আপনার প্রতিক্রিয়া জন্য আপনাকে ধন্যবাদ। আমি অনুক্রম দেখুন একটি ছবি যোগ করা। এখনও আমি মনে করি এটা করা সম্ভব হবে।
যোগ লেখক Bruno Bieri, উৎস

যতদূর আমি জানি, একবার আপনি অ্যাকশনবারের সাথে কাজ করার জন্য চয়ন করেন, এটি আপনার লেআউটের চেয়ে উচ্চতর স্তরে (UI পংক্তির) যোগ করা হয়।

অর্থ যেখানে এটি স্থাপন করা হয় তার কোন নিয়ন্ত্রণ নেই এবং এটির উপরে কী স্থাপন করা হয়েছে।

আপনার লেআউটটি অ্যাকশন বারের নিচে শুরু হয় এবং পর্দার নীচে শেষ হয়।

আমার মতে, আপনি যদি যা চান তা করার একটি উপায় খুঁজে পান তবে এটি খুব প্যাচী হবে।

0
যোগ
হাই ডোর, আপনার প্রতিক্রিয়া জন্য আপনাকে ধন্যবাদ। আমি অনুক্রম দেখুন একটি ছবি যোগ করা। এখনও আমি মনে করি এটা করা সম্ভব হবে।
যোগ লেখক Bruno Bieri, উৎস

আপনি বলে আপনি কন্টেন্ট ফ্রেম বিন্যাস রেফারেন্স আছে। আপনি তার পিতামাতার ভিউ পেতে পারেন? LinearLayout এ এটি নিক্ষেপ করুন তারপর আপনার অবস্থানটি প্রথম অবস্থানে যুক্ত করুন।

http://developer.android.com/reference/android /view/View.html#getParent%28%29

0
যোগ

This hardly seems worth the bounty, but a previous question answers this: Getting admob above actionbarsherlock

ট্রিকটি Google actionbar ব্যবহার করে অ্যাকশনবার্সেরলক লাইব্রেরিতে স্যুইচ করতে হয়। এটি সম্ভবত আপনার অ্যাপ্লিকেশনের জন্য ভাল ধারণা, কারণ এটি আপনাকে পুরানো বিল্ডের Android এর অ্যাকশনবার সমর্থন করতে দেয়।

ব্যবহারকারী কাজ যে অর্জিত অর্জিত দাবি।

0
যোগ

This hardly seems worth the bounty, but a previous question answers this: Getting admob above actionbarsherlock

ট্রিকটি Google actionbar ব্যবহার করে অ্যাকশনবার্সেরলক লাইব্রেরিতে স্যুইচ করতে হয়। এটি সম্ভবত আপনার অ্যাপ্লিকেশনের জন্য ভাল ধারণা, কারণ এটি আপনাকে পুরানো বিল্ডের Android এর অ্যাকশনবার সমর্থন করতে দেয়।

ব্যবহারকারী কাজ যে অর্জিত অর্জিত দাবি।

0
যোগ