আমি গুগল ডিজাইন অ্যাপ বার নির্দেশিকাতে প্রসারিত উচ্চতা অ্যাপ বারগুলি দেখেছি । এগুলি অ্যান্ড্রয়েড ললিপপগুলিতে কীভাবে প্রয়োগ করব?
আমি গুগল ডিজাইন অ্যাপ বার নির্দেশিকাতে প্রসারিত উচ্চতা অ্যাপ বারগুলি দেখেছি । এগুলি অ্যান্ড্রয়েড ললিপপগুলিতে কীভাবে প্রয়োগ করব?
উত্তর:
এটি অর্জনের জন্য আপনাকে নতুন টুলবার উইজেট ব্যবহার করতে হবে। বোতামগুলির জন্য ব্যবহৃত স্থানের পরিমাণ (এবং ক্রিয়াগুলি) ঘোষণার জন্য নূন্যতম উচ্চতার জন্য টুলবারের বিশেষ হ্যান্ডলিং রয়েছে।
নীচের উদাহরণে, আমরা উচ্চতাটি 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
পরিবর্তে এটি ব্যবহারের জন্য ঘোষণাটি পরিবর্তন করুন এবং এর বৈশিষ্ট্যগুলি ব্যবহার করুন।
@dimen/action_bar_size_x2
এবং ফোনে 112 ডিপি ব্যবহার করুন, ট্যাবলেটগুলিতে 128 ডিপি করুন
android:paddingBottom
buttonGravity
সেট করা থাকলে অদ্ভুত ব্যবধানের পরিচয় দেয় bottom
। titleMarginBottom
অ্যাট্রিবিউট এখানে ভালো বিকল্প মত মনে হয়, তাই না?
আপনার প্রশ্নের জন্য, এর উত্তরটির জন্য এবং এরপরেও নেটিভ এবং সহায়তাগ্রন্থে সরঞ্জামদণ্ড বাস্তবায়নের জন্য ধন্যবাদ :)
এবং আমরা আরও খেলতে পারি। আমরা রানটাইমের সময় হাইট এবং মিনিমাল হাইটের সাথে খেলতে পারি।
উচ্চতাটি সরঞ্জামদণ্ডের উচ্চতা, এটি সাধারণ, প্রতিটি শরীর বোঝে এবং মাধ্যাকর্ষণটি সেই উচ্চতা অনুসারে কাজ করে।
ন্যূনতম উচ্চতাটি আরও জটিল এবং সর্বনিম্ন 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;
layout_height
উপায়টি হয় তবে আমি আশা করি এখানে বর্ষা দ্বারা বর্ণিত কর্মক্ষেত্রটিও একটি কর্মচক্র নয়, তবে সঠিক পথটি যেতে হবে? কোড.google.com/p/android/issues/detail?id=77874