คำถามติดแท็ก android-actionbar

ActionBar เป็นคุณลักษณะหน้าต่างของ Android ที่ระบุแอปพลิเคชันและตำแหน่งของผู้ใช้และให้การดำเนินการของผู้ใช้และโหมดการนำทาง

8
Android Lollipop มุมมองที่กำหนดเองของ AppCompat ActionBar ไม่ใช้ความกว้างของหน้าจอทั้งหมด
ดังนั้นฉันเพิ่งอัปเดต codebase ของฉันเป็น Lollipop และฉันมีปัญหากับ Action Bar ฉันใช้ AppCompat และ ActionBarActivity และขยายมุมมองที่กำหนดเอง ดูเหมือนว่ามุมมองแบบกำหนดเองจะไม่ใช้ความกว้างทั้งหมดของหน้าจออีกต่อไปโดยปล่อยให้มีแถบบาง ๆ ทางด้านซ้าย แบบที่เคยดู หน้าตาตอนนี้ นี่คือรหัสที่ฉันใช้ตั้งค่าแถบการดำเนินการ ใครมีไอเดียบ้าง final ActionBar actionBar = getSupportActionBar(); if(actionBar != null) { actionBar.setDisplayHomeAsUpEnabled(false); actionBar.setDisplayShowHomeEnabled(false); actionBar.setDisplayShowTitleEnabled(false); actionBar.setDisplayShowCustomEnabled(true); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); actionBar.setCustomView(R.layout.action_bar_content_search_custom_view); actionBar.setBackgroundDrawable(null); // actionBar.setStackedBackgroundDrawable(null); TextView title = (TextView) actionBar.getCustomView().findViewById(R.id.action_bar_title); title.setText(R.string.youtube); ImageView back = (ImageView) actionBar.getCustomView().findViewById(R.id.action_bar_back); back.setOnClickListener(new OnClickListener() …

4
เค้าโครงผู้ประสานงานพร้อมแถบเครื่องมือในส่วนย่อยหรือกิจกรรม
ด้วยไลบรารีการออกแบบใหม่มีเค้าโครงใหม่หลายแบบที่เปลี่ยนแปลงวิธีการทำงานของแถบเครื่องมืออย่างมากหากนักพัฒนาต้องการ เนื่องจากแฟรกเมนต์ที่แตกต่างกันมีพฤติกรรมและวัตถุประสงค์ที่แตกต่างกันตัวอย่างเช่นแฟรกเมนต์แกลเลอรีที่มีแถบเครื่องมือการยุบซึ่งแสดงรูปภาพที่สำคัญหรือส่วนที่ไม่มีมุมมองแบบเลื่อนที่ไม่จำเป็นต้องใช้แอพบาร์เลย์เอาต์สำหรับการซ่อนแถบเครื่องมือการมีแถบเครื่องมือเดียวในกิจกรรมสามารถทำได้ พิสูจน์ยาก. ด้วยเหตุนี้ฉันควรย้ายแถบเครื่องมือไปยังแต่ละส่วนหรือไม่ ถ้าเป็นเช่นนั้นฉันต้องตั้งค่า supportActionBar ทุกครั้งที่แสดงแฟรกเมนต์และยังมีการอ้างอิงของกิจกรรมในแฟรกเมนต์ซึ่งจะลบล้างลักษณะอิสระของแฟรกเมนต์ ถ้าฉันปล่อยแถบเครื่องมือไว้ในกิจกรรมเพียงอย่างเดียวฉันต้องมีเค้าโครงหลายแบบที่กำหนดไว้สำหรับพฤติกรรมแต่ละประเภทในแต่ละส่วน แนวทางที่ดีที่สุดคืออะไร?

17
Android: วิธีซ่อน ActionBar ในกิจกรรมบางอย่าง
ฉันได้พัฒนาแอปพลิเคชั่นสาธิตง่ายๆด้วยหน้าจอเริ่มต้นแผนที่และหน้าจอปกติบางส่วน ฉันมีแถบการทำงานที่ด้านบนซึ่งมีโลโก้ ทุกอย่างดูดีบนโทรศัพท์ของฉัน (Galaxy s1 I9000 V2.3) แต่เมื่อฉันทดสอบบน Galaxy s2 v4 แถบการกระทำจะปรากฏในหน้าจอเริ่มต้นและในหน้าจอแผนที่ด้วย กิจกรรม spalsh และแผนที่ไม่ได้สืบทอดมาจาก ActionBarActivity ด้วยซ้ำดังนั้นจะเป็นไปได้อย่างไรและฉันจะทำให้มันหายไปได้อย่างไร ประจักษ์: <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:theme="@style/Theme.AppCompat.Light" > <activity android:name=".HomeActivity" android:icon="@drawable/android_logo" android:label="" android:logo="@drawable/android_logo" > <!-- <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> --> </activity> <activity android:name=".MapActivity" android:label="" > </activity> <activity android:name=".PackageActivity" android:icon="@drawable/android_logo" android:label="" android:logo="@drawable/android_logo" …

11
เปลี่ยนสี Toolbar ใน Appcompat 21
ฉันกำลังทดสอบคุณสมบัติใหม่ของ Appcompat 21 Material Design ดังนั้นฉันจึงสร้าง Toolbar ดังนี้: <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/activity_my_toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="?attr/actionBarSize" android:background="?attr/colorPrimary" app:theme="@style/ThemeOverlay.AppCompat.ActionBar"/> และรวมไว้ในไฟล์เลย์เอาต์หลักของฉัน จากนั้นฉันตั้งเป็น supportActionBar ดังนี้: Toolbar toolBar = (Toolbar)findViewById(R.id.activity_my_toolbar); setSupportActionBar(toolBar); มันใช้งานได้ แต่อย่างใดฉันไม่สามารถหาวิธีปรับแต่งแถบเครื่องมือได้ มันเป็นสีเทาและข้อความบนนั้นเป็นสีดำ ฉันจะเปลี่ยนพื้นหลังและสีข้อความได้อย่างไร? ฉันได้ทำตามคำแนะนำนี้แล้ว: http://android-developers.blogspot.de/2014/10/appcompat-v21-material-design-for-pre.html ฉันได้ดูแลอะไรในการเปลี่ยนสี? <style name="AppTheme" parent="Theme.AppCompat.Light"> <item name="android:windowActionBar" tools:ignore="NewApi">false</item> <item name="windowActionBar">false</item> </style> แก้ไข : ฉันสามารถเปลี่ยนสีพื้นหลังได้โดยการเพิ่มบรรทัดโค้ดเหล่านี้ในธีม: <item name="colorPrimary">@color/actionbar</item> <item name="colorPrimaryDark">@color/actionbar_dark</item> แต่จะไม่ส่งผลต่อสีข้อความ …

7
จะอัพเดตรายการเมนูที่แสดงใน ActionBar ได้อย่างไร?
ฉันมีกิจกรรมที่มีเศษ 2 ส่วน ทั้งสองเป็น ListFragments และทั้งสองมีส่วนร่วม MenuItems ไปยังเมนู ฉันมี MenuItem รายการหนึ่งที่ฉันได้ตั้งค่าแอตทริบิวต์ android: showAsAction ให้แสดงเป็นปุ่มบน ActionBar ซึ่งใช้งานได้ดี ตอนนี้ MenuItem ขึ้นอยู่กับสถานะ เป็นตัวเลือกเมนู Pause / Resume สำหรับหยุดชั่วคราวและกลับมาทำคิวต่อ ปัญหาของฉันคือฉันไม่สามารถหาวิธีตั้งค่ารูปปั้นเริ่มต้นเมื่อสร้าง Fragment สถานะขึ้นอยู่กับว่าคิวหยุดชั่วคราวหรือไม่ ดังนั้นฉันจึงมี AsyncTask ที่รับคิวและตั้งค่าบูลีน (หยุดชั่วคราว) ตามสถานะของคิว ฉันกำลังเรียกใช้ onPrepareOptionsMenu เพื่อตั้งค่าข้อความสำหรับรายการเมนูหยุดชั่วคราวตามสถานะสุดท้ายที่ทราบของคิวและจะใช้งานได้ดีถ้าฉันออกจาก MenuItem ในเมนูจริง คุณแตะไอคอนเมนูและ onPrepareOptionsMenu จะเริ่มทำงานและเมนูจะได้รับการอัปเดตก่อนที่จะแสดง ปัญหาคือถ้าฉันใส่ MenuItem เดียวกันบน ActionBar (showAsAction) ฉันจะบังคับให้อัปเดตโดยไม่ต้องเรียก onPrepareOptionsMenu ได้อย่างไร ฉันต้องสามารถทำได้เพราะในการเปิดตัวแอปครั้งแรกฉันส่งคำขอเพื่อรับคิว แต่งานจะกลับมาหลังจากที่ …

6
จะแสดงมุมมองแบบกำหนดเองใน ActionBar ได้อย่างไร?
ฉันต้องการแสดงการค้นหาที่กำหนดเองในแถบการดำเนินการ (ฉันใช้ ActionBarSherlock สำหรับสิ่งนั้น) ฉันเข้าใจ: แต่ฉันต้องการสร้างเค้าโครงที่กำหนดเอง (ช่องแก้ไขข้อความ) เพื่อใช้ความกว้างทั้งหมดที่มีอยู่ ผมเคยนำมาใช้รูปแบบที่กำหนดเองตามที่แนะนำที่นี่ มีเค้าโครงที่กำหนดเองของฉันsearch.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" style="?attr/actionButtonStyle" android:layout_width="fill_parent" android:layout_height="match_parent" android:layout_gravity="fill_horizontal" android:focusable="true" > <FrameLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical|fill_horizontal" > <EditText android:id="@+id/search_query" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="left|center" android:background="@drawable/bg_search_edit_text" android:imeOptions="actionSearch" android:inputType="text" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right|center_vertical" android:src="@drawable/ic_search_arrow" /> </FrameLayout> </LinearLayout> และในMyActivity: ActionBar actionBar = getSupportActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setDisplayShowCustomEnabled(true); …

9
แถบการทำงานของ Android ไม่แสดงการล้น
ฉันมีแถบการทำงานในแอปของฉันซึ่งมี 3 รายการ แสดงได้เพียง 2 อันเนื่องจากปัญหาพื้นที่ดังนั้นฉันคาดหวังว่ารายการแรกจะปรากฏและส่วนที่เหลือจะแสดงในรายการที่ล้น อย่างไรก็ตามในทางปฏิบัติจะแสดงเพียง 2 รายการแรกเท่านั้นและไม่มีการตรวจจับการล้น นี่คือรหัสที่เกี่ยวข้อง: list_menu.xml <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/menu_insert" android:icon="@android:drawable/ic_menu_add" android:title="@string/menu_insert" android:showAsAction="ifRoom|withText"/> <item android:id="@+id/menu_call" android:icon="@android:drawable/ic_menu_call" android:title="@string/menu_call" android:showAsAction="ifRoom|withText"/> <item android:id="@+id/menu_agenda" android:icon="@android:drawable/ic_menu_agenda" android:title="@string/menu_agenda" android:showAsAction="ifRoom|withText"/> </menu> Activity.java public boolean onCreateOptionsMenu(Menu menu) { MenuInflater mi = getMenuInflater(); mi.inflate(R.menu.list_menu, menu); return true; }

21
การตั้งค่าชื่อ ActionBar แบบกำหนดเองจาก Fragment
ใน Main ของFragmentActivityฉันฉันตั้งค่าActionBarหัวข้อที่กำหนดเองดังนี้: LayoutInflater inflator = (LayoutInflater) this .getSystemService(Context.LAYOUT_INFLATER_SERVICE); View v = inflator.inflate(R.layout.custom_titlebar, null); TextView tv = (TextView) v.findViewById(R.id.title); Typeface tf = Typeface.createFromAsset(this.getAssets(), "fonts/capsuula.ttf"); tv.setTypeface(tf); tv.setText(this.getTitle()); actionBar.setCustomView(v); ทำงานได้สมบูรณ์แบบ อย่างไรก็ตามเมื่อฉันเปิดรายการอื่นFragmentsฉันต้องการให้ชื่อเปลี่ยน ฉันไม่แน่ใจว่าจะเข้าถึง Main ได้Activityอย่างไร? ที่ผ่านมาฉันทำสิ่งนี้: ((MainFragmentActivity) getActivity()).getSupportActionBar().setTitle( catTitle); มีใครสามารถแนะนำวิธีการที่เหมาะสมได้หรือไม่? XML: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/transparent" > <TextView android:id="@+id/title" android:layout_width="wrap_content" …

10
วิธีตั้งค่าสี / สไตล์ ActionBar แบบกำหนดเอง
ฉันใช้Android Navigation barในโปรเจ็กต์ของฉันฉันต้องการเปลี่ยนสีด้านบนในแถบการทำงานเป็นสีแดงฉันจะทำอย่างไร ฉันมีบางอย่างเช่นนี้ และฉันต้องการอะไรแบบนี้ ฉันจะบรรลุเป้าหมายนั้นได้อย่างไร

2
ฉันจะประกาศแถบเครื่องมือ / แถบการกระทำที่มีความสูงเพิ่มขึ้นบน Android Lollipop ได้อย่างไร
ผมเคยเห็นการขยายความสูงบาร์ของแอปใน Google ออกแบบApp Barแนวทาง ฉันจะใช้สิ่งเหล่านี้ใน Android Lollipop ได้อย่างไร

9
แถบการดำเนินการขึ้นการนำทางด้วยชิ้นส่วน
ฉันมีแท็บ Actionbar / viewpager รูปแบบที่มีสามแท็บพูด, BและC ในแท็บCแท็บ (ส่วน) ผมกำลังเพิ่มอีกส่วนพูดส่วนD ด้วย DFragment f= new DFragment(); ft.add(android.R.id.content, f, ""); ft.remove(CFragment.this); ft.addToBackStack(null); ft.commit(); ฉันแก้ไขแถบการดำเนินการในปุ่ม onResume ของ DFragment เพื่อเพิ่ม: ActionBar ab = getActivity().getActionBar(); ab.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); ab.setDisplayHomeAsUpEnabled(true); ab.setDisplayShowHomeEnabled(true); ตอนนี้ใน DFragment เมื่อฉันกดปุ่มย้อนกลับของฮาร์ดแวร์ (โทรศัพท์) ฉันจะกลับไปที่เค้าโครงแบบแท็บ (ABC) ดั้งเดิมโดยเลือก CFragment ฉันจะใช้ฟังก์ชันนี้ด้วยปุ่มขึ้นแถบการทำงานได้อย่างไร
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.