অ্যান্ড্রয়েড ললিপপটিতে আমি কীভাবে বর্ধিত উচ্চতার সরঞ্জামদণ্ড / অ্যাকশন বার ঘোষণা করব?


উত্তর:


144

এটি অর্জনের জন্য আপনাকে নতুন টুলবার উইজেট ব্যবহার করতে হবে। বোতামগুলির জন্য ব্যবহৃত স্থানের পরিমাণ (এবং ক্রিয়াগুলি) ঘোষণার জন্য নূন্যতম উচ্চতার জন্য টুলবারের বিশেষ হ্যান্ডলিং রয়েছে।

নীচের উদাহরণে, আমরা উচ্চতাটি 128 ডিপি হিসাবে নির্ধারণ করছি (যা বর্ণনায় বর্ণিত 56dp + 72dp), তবে android:minHeightমান হিসাবে রাখা actionBarSize(যা সাধারণত 56dp হয়)। এর অর্থ বোতাম এবং ক্রিয়াগুলি শীর্ষ 56 ডিপিতে উল্লম্বভাবে অবস্থান করতে সীমাবদ্ধ। এরপরে আমরা android:gravityনীচে শিরোনামটি অবস্থান করতে ব্যবহার করতে পারি ।

<Toolbar
    android:id="@+id/toolbar"
    android:layout_height="128dp"
    android:layout_width="match_parent"
    android:minHeight="?android:attr/actionBarSize"
    android:background="?android:attr/colorPrimary"
    android:gravity="bottom" />

আপনি যদি অ্যাপকম্প্যাট ব্যবহার করছেন তবে তার android.support.v7.widget.Toolbarপরিবর্তে এটি ব্যবহারের জন্য ঘোষণাটি পরিবর্তন করুন এবং এর বৈশিষ্ট্যগুলি ব্যবহার করুন।


4
যদি ব্যবহারের layout_heightউপায়টি হয় তবে আমি আশা করি এখানে বর্ষা দ্বারা বর্ণিত কর্মক্ষেত্রটিও একটি কর্মচক্র নয়, তবে সঠিক পথটি যেতে হবে? কোড.google.com/p/android/issues/detail?id=77874
টমাস কেলার

4
আমি মাত্রা জন্য এক্সপ্রেশন ঘোষণা করতে সক্ষম চাই, কিন্তু আমরা করতে পারি না।
ক্রিস ব্যান

37
বোনাস পয়েন্টগুলির জন্য, ইনক্রিমেন্টগুলি ব্যবহার করে অ্যাকশন বারের আকার দিন, উদাহরণস্বরূপ @dimen/action_bar_size_x2এবং ফোনে 112 ডিপি ব্যবহার করুন, ট্যাবলেটগুলিতে 128 ডিপি করুন
রোমান নুরিক

7
android:paddingBottombuttonGravityসেট করা থাকলে অদ্ভুত ব্যবধানের পরিচয় দেয় bottomtitleMarginBottomঅ্যাট্রিবিউট এখানে ভালো বিকল্প মত মনে হয়, তাই না?
পল বার্ক

4
@ রোমাননুরিক কীভাবে ক্যালেন্ডার অ্যাপের বর্ধিত সরঞ্জামদণ্ডটি কাজ করে? কোনও ইঙ্গিত
রঘুনন্দন

3

আপনার প্রশ্নের জন্য, এর উত্তরটির জন্য এবং এরপরেও নেটিভ এবং সহায়তাগ্রন্থে সরঞ্জামদণ্ড বাস্তবায়নের জন্য ধন্যবাদ :)

এবং আমরা আরও খেলতে পারি। আমরা রানটাইমের সময় হাইট এবং মিনিমাল হাইটের সাথে খেলতে পারি।

উচ্চতাটি সরঞ্জামদণ্ডের উচ্চতা, এটি সাধারণ, প্রতিটি শরীর বোঝে এবং মাধ্যাকর্ষণটি সেই উচ্চতা অনুসারে কাজ করে।

ন্যূনতম উচ্চতাটি আরও জটিল এবং সর্বনিম্ন 56 ডিপি হওয়া উচিত নয়। এই minHeight আপনার মেনু আইটেমের লাইন স্থাপন করতে ব্যবহৃত হয়। এই লাইনটি আপনার মিনিটের উচ্চতার মাঝখানে।

সুতরাং আপনি নিজের দ্বারা পার্থক্যটি দেখতে আপনার কোডটিতে এই কোডটি যুক্ত করতে পারেন। :)

Runnable toolBarAnimator=new Runnable() {
        @Override
        public void run() {
            if(postICS){
//                toolbar.setTranslationX(iteration);
//                toolbar.setElevation(iteration);
                toolbar.setMinimumHeight(iteration * 5);
                toolbar.getLayoutParams().height++;
            }
            uiThreadHanlder.postDelayed(this,16);
            iteration++;
            if(iteration>150)iteration=0;
        }
    };
    Handler uiThreadHanlder=new Handler();
    int iteration=0;


    @Override
    protected void onResume() {
        super.onResume();
        //launch the animation
        uiThreadHanlder.postDelayed(toolBarAnimator, 1000);
    }


    @Override
    protected void onPause() {
        super.onPause();
        //stop the animation
        uiThreadHanlder.removeCallbacks(toolBarAnimator);
    }

যেখানে টুলবারটি রয়েছে:

সরঞ্জামদণ্ড = (সরঞ্জামদণ্ড) FindViewById (R.id.toolbar);

এটি করার সময় আপনি পাবেন: এখানে চিত্র বর্ণনা লিখুন

তবে আপনি যদি অ্যানিমেশনটি চালিয়ে যান তবে আপনি পান: এখানে চিত্র বর্ণনা লিখুন

এ কারণেই, আপনার সরঞ্জামদণ্ডটি অ্যান্ড্রয়েড সেট করা: লেআউট_হাইট র‌্যাপ_কন্টেন্টের ক্ষেত্রে বেশিরভাগ ক্ষেত্রেই ভাল বিকল্প, কারণ সরঞ্জামদণ্ডটি এর বিষয়বস্তু অনুসারে তার উচ্চতাটি মানিয়ে নেবে (এবং আপনি রানটাইমতে সামগ্রীটি পরিবর্তন করতে পারেন :)

এবং রানটাইমে আপনি নিজের সরঞ্জামদণ্ডের আকারটিও এভাবে পরিবর্তন করেন।

ক্রিস ব্যানস অ্যাকশনবারে আপনি যে আশ্চর্যজনক কাজ করেছেন তার জন্য ধন্যবাদ।


@ মোহাম্মদহাদি আমি কল্পনা করছি পোস্টিকসকে এমন কিছু সংজ্ঞায়িত করা হবে:boolean postICS = Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN;
dm78
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.