मैंने Google डिज़ाइन ऐप बार दिशानिर्देशों में विस्तारित ऊंचाई ऐप बार देखा है । एंड्रॉइड लॉलीपॉप में मैं इन्हें कैसे लागू करूं?
मैंने Google डिज़ाइन ऐप बार दिशानिर्देशों में विस्तारित ऊंचाई ऐप बार देखा है । एंड्रॉइड लॉलीपॉप में मैं इन्हें कैसे लागू करूं?
जवाबों:
इसे प्राप्त करने के लिए आपको नए टूलबार विजेट का उपयोग करने की आवश्यकता है । टूलबार के पास अंतरिक्ष की मात्रा को घोषित करने के लिए न्यूनतम ऊंचाई है जो बटन (और कार्यों) के लिए उपयोग की जाती है।
नीचे दिए गए उदाहरण में, हम ऊंचाई निर्धारित कर रहे हैं 128dp (जो कि 56dp + 72dp है जैसा कि कल्पना में परिभाषित किया गया है), लेकिन android:minHeight
मानक actionBarSize
(जो आमतौर पर 56dp है) के रूप में रखते हुए । इसका अर्थ है कि बटन और क्रियाएं 56dp में लंबवत रूप से तैनात होने के लिए विवश हैं। तब हम 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" />
यदि आप AppCompat का उपयोग कर रहे हैं, तो android.support.v7.widget.Toolbar
इसके बजाय उपयोग करने के लिए घोषणा बदलें और इसका उपयोग करें विशेषताएँ।
@dimen/action_bar_size_x2
, और फोन पर 112dp का उपयोग करें, टैबलेट पर 128dp
android:paddingBottom
buttonGravity
सेट करने पर अजीब रिक्ति का परिचय देता है bottom
। titleMarginBottom
विशेषता यहां बेहतर विकल्प की तरह लगता है, नहीं?
आपके प्रश्न के लिए धन्यवाद, इसका उत्तर, और देशी और सहायक में टूलबार के कार्यान्वयन के लिए और अधिक :)
और हम अधिक खेल सकते हैं। हम, रनटाइम पर, हाइट और मिनिमलहाइट के साथ खेल सकते हैं।
ऊँचाई टूलबार की ऊँचाई है, यह सरल है, हर शरीर को समझता है, और गुरुत्वाकर्षण उस ऊँचाई के अनुसार कार्य करता है।
न्यूनतम ऊंचाई अधिक मुश्किल है और न्यूनतम 56dp पर नहीं होनी चाहिए। इस minHeight का उपयोग आपके menuItem की पंक्ति को रखने के लिए किया जाता है। यह लाइन आपके मिनीहाइट के मध्य में है।
तो आप अपने अंतर को देखने के लिए इस कोड को अपनी गतिविधि में जोड़ सकते हैं। :)
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);
}
जहां टूलबार है:
toolbar = (टूलबार) findViewById (R.id.toolbar);
यह करते समय आप प्राप्त करते हैं:
लेकिन अगर आप एनीमेशन छोड़ते हैं तो आप प्राप्त करते हैं:
यही कारण है कि, अपने टूलबार को एंड्रॉइड पर सेट करना: लेआउट_हाइट से रैप_ कॉन्टेंट ज्यादातर मामलों में एक अच्छा विकल्प है, क्योंकि टूलबार अपनी सामग्री के अनुसार इसकी ऊंचाई को अनुकूलित करेगा (और आप रनटाइम पर सामग्री को बदल सकते हैं :)
और यह भी है कि आप अपने टूलबार के आकार को रनटाइम पर कैसे बदलते हैं।
धन्यवाद आप एक्शनबार पर किए गए अद्भुत काम के लिए क्रिस बैन्स।
boolean postICS = Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN;
layout_height
का तरीका है, तो मुझे उम्मीद है कि यहां मानसून द्वारा वर्णित वर्कअराउंड भी एक वर्कअराउंड नहीं है, लेकिन जाने का उचित तरीका है? code.google.com/p/android/issues/detail?id=77874