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

Toolbar คือวิดเจ็ตที่ใช้การกำหนดลักษณะทั่วไปของแถบการดำเนินการสำหรับใช้ภายในเลย์เอาต์

21
กิจกรรมนี้มีแถบการกระทำที่จัดทำโดยการตกแต่งหน้าต่าง
พยายามที่จะย้ายสิ่งต่าง ๆ ของฉันเพื่อใช้Toolbarแทนแถบแอ็คชัน แต่ฉันได้รับข้อผิดพลาดว่า java.lang.RuntimeException: Unable to start activity ComponentInfo{com.tyczj.weddingalbum/com.xxx.xxx.MainActivity}: java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead. at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) at android.app.ActivityThread.access$600(ActivityThread.java:141) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) at android.os.Handler.dispatchMessage(Handler.java:99) …

24
แสดงลูกศรย้อนกลับบนแถบเครื่องมือ
ฉันกำลังย้ายจากActionBarไปยังToolbarในแอปพลิเคชันของฉัน แต่ผมไม่ทราบวิธีการแสดงและกิจกรรมชุดคลิกที่ลูกศรย้อนกลับบนเหมือนผมใน ToolbarActionbar ด้วยการโทรฉันActionBar mActionbar.setDisplayHomeAsUpEnabled(true)แต่ไม่มีวิธีการที่คล้ายกันเช่นนี้ มีใครเคยเผชิญกับสถานการณ์นี้บ้างและพบวิธีแก้ปัญหาหรือไม่?

30
ชื่อศูนย์กลางของแถบเครื่องมือ Android และแบบอักษรที่กำหนดเอง
ฉันกำลังพยายามหาวิธีที่ถูกต้องในการใช้แบบอักษรที่กำหนดเองสำหรับชื่อแถบเครื่องมือและจัดกึ่งกลางไว้ในแถบเครื่องมือ (ความต้องการของลูกค้า) ในขณะนี้ฉันกำลังใช้ ActionBar แบบเก่าที่ดีและฉันกำลังตั้งชื่อให้เป็นค่าว่างและใช้setCustomViewในการใส่แบบอักษรที่กำหนดเองของฉัน TextView และจัดกึ่งกลางโดยใช้ ActionBar.LayoutParams มีวิธีที่ดีกว่าในการทำเช่นนั้น? ใช้แถบเครื่องมือใหม่เป็น ActionBar ของฉัน

1
Action Bar แตกต่างจากแถบเครื่องมือที่แนะนำใหม่อย่างไร
หลังจากที่ Google ได้แนะนำการออกแบบวัสดุฉันเคยได้ยินเกี่ยวกับคลาสวิดเจ็ตใหม่ที่เรียกว่า Toolbar Toolbar คืออะไรและอะไรคือความแตกต่างที่แน่นอนระหว่าง ActionBar และ ToolBar

10
การเสริมแถบเครื่องมือ Android API 21
ฉันจะกำจัดส่วนเสริมพิเศษใน Toolbar ใหม่ด้วย Android SDK API เวอร์ชัน 21 (ห้องสมุดสนับสนุน) ได้อย่างไร ฉันกำลังพูดถึงลูกศรสีแดงในภาพนี้: นี่คือรหัสที่ฉันใช้: <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_height="wrap_content" android:layout_width="match_parent" android:background="?attr/colorPrimary" android:padding="0dp" android:layout_margin="0dp"> <RelativeLayout android:id="@+id/action_bar_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="0dp" android:padding="0dp" android:background="#000000"> <Spinner android:layout_width="wrap_content" android:layout_height="wrap_content"/> </RelativeLayout> </Toolbar> อย่างที่คุณเห็นฉันได้ตั้งค่าช่องว่างภายในที่เกี่ยวข้องทั้งหมดเป็น 0 แต่ยังมีช่องว่างภายในรอบตัวหมุน ฉันทำอะไรผิดหรือฉันต้องทำอย่างไรเพื่อกำจัดช่องว่างภายในเพิ่มเติม แก้ไข บางคนถามว่าทำไมฉันถึงพยายามทำเช่นนี้ ตามข้อกำหนดการออกแบบวัสดุสปินเนอร์ควรเป็น 72dp จากด้านซ้าย ฉันต้องต่อต้านการแพ็ดดิ้งของ Google ที่วางไว้เพื่อวางสปินเนอร์อย่างถูกต้อง: แก้ไข 2 ตามคำตอบของ Chris Bane ฉันตั้ง contentInsetStart …

7
แถบเครื่องมือและ ActionBar เชิงบริบทด้วย AppCompat-v7
ฉันกำลังทำงานกับการใช้ Toolbar ที่เพิ่งเพิ่มเข้ามาใหม่ซึ่งถูกนำมาใช้ใน Lollipop และไลบรารี AppCompat-v7 ฉันทำตามคำแนะนำนี้ในการตั้งค่า Toolbar ฉันสังเกตเห็นว่าเมื่อคุณเรียกใช้บางสิ่งที่จะแสดงบริบทของ ActionBar (เช่นการเน้นข้อความเพื่อคัดลอก / วาง) มันจะดัน Toolbar ลงบนหน้า คุณสามารถเห็นสิ่งที่ฉันกำลังพูดถึงในภาพที่ด้านล่างของหน้า: โดยพื้นฐานแล้วฉันตั้งมันแบบนี้ ฉันมีแถบเครื่องมือที่กำหนดไว้ในไฟล์ xml ที่ฉันใช้กับแท็กรวม: <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?attr/colorPrimary"/> จากนั้นฉันยกตัวอย่างมันในมุมมองของฉัน: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:id="@+id/root" tools:context=".MainActivity"> <include layout="@layout/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content"/> <!-- Rest of view --> </LinearLayout> ในรหัสฉันตั้งค่าเช่นนั้น: // On Create …

4
เพิ่มมุมมองด้านล่างแถบเครื่องมือใน CoordinatorLayout
ฉันมีเค้าโครงต่อไปนี้: <android.support.design.widget.CoordinatorLayout android:id="@+id/main_content" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.design.widget.AppBarLayout android:id="@+id/appBar" android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/ThemeOverlay.AppCompat.ActionBar"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:layout_scrollFlags="scroll|enterAlways" app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/> </android.support.design.widget.AppBarLayout> <FrameLayout android:id="@+id/content" android:layout_width="match_parent" android:layout_height="match_parent" /> </android.support.design.widget.CoordinatorLayout> ฉันเพิ่มFragments เข้าไปFrameLayoutแทนที่พวกเขา หนึ่งในฉันFragmentคือรายการซึ่งมีรูปแบบต่อไปนี้: <android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"/> ปัญหาของฉันที่นี่ที่แถบเครื่องมือจะถูกวาดขึ้นในช่วงรายการ ฉันพยายามที่จะแก้ปัญหานั้นด้วยการห่อเนื้อหาของCoordinatorLayoutลงใน a LinearLayoutที่แก้ปัญหาการถอนเงินเกิน แต่วิธีที่พฤติกรรมการเลื่อนของแถบแอปไม่ทำงานอีกต่อไป ความช่วยเหลือใด ๆ ที่ชื่นชมมาก!


16
ไม่มีเงาตามค่าเริ่มต้นใน Toolbar หรือไม่
ฉันกำลังอัปเดตแอปของฉันด้วย Toolbar ใหม่จากห้องสมุดสนับสนุน v21 ปัญหาของฉันคือแถบเครื่องมือไม่ได้สร้างเงาใด ๆ หากฉันไม่ได้ตั้งค่าแอตทริบิวต์ "ระดับความสูง" นั่นเป็นพฤติกรรมปกติหรือฉันกำลังทำอะไรผิดหรือเปล่า? รหัสของฉันคือ: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <android.support.v7.widget.Toolbar xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/my_awesome_toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?attr/colorPrimary" android:elevation="4dp" android:minHeight="?attr/actionBarSize" app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> <FrameLayout android:id="@+id/FrameLayout1" android:layout_width="match_parent" android:layout_height="match_parent"> . . . และในกิจกรรมของฉัน - วิธีการสร้าง: Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar); setSupportActionBar(toolbar);

7
เปลี่ยนสีแถบสถานะด้วย AppCompat ActionBarActivity
Paletteหนึ่งในกิจกรรมของฉันฉันเปลี่ยนสีโดยใช้แถบเครื่องมือ แต่ใน 5.0 อุปกรณ์ที่ใช้สีเป็นสีของฉันในชุดรูปแบบกิจกรรมของฉันเพื่อให้ฉันมี 2 สีที่แตกต่างกันมากและมันก็ไม่ได้ดูดีActionBarActivitystatus barcolorPrimaryDark ฉันรู้ว่าใน 5.0 คุณสามารถใช้Window.setStatusBarColor()แต่ActionBarActivityไม่มีสิ่งนี้ ดังนั้นคำถามของฉันคือ 5.0 ฉันจะเปลี่ยนสีของแถบสถานะได้ActionBarActivityอย่างไร

5
วิธีใช้ SearchView ใน Toolbar Android
รหัสที่ฉันใช้งานกำลังใช้ a Toolbarและขยายmenuไฟล์. นี่คือรหัส private Toolbar mToolbar; mToolbar.inflateMenu(R.menu.chat_screen_menu); setupMenu (); private void setupMenu () { mMenu = mToolbar.getMenu(); if (mMenu != null) { if (mChatPager != null && mChatPager.getCurrentItem() > 0) { mMenu.setGroupVisible(R.id.menu_group_chats, true); mMenu.setGroupVisible(R.id.menu_group_contacts, false); } else { mMenu.setGroupVisible(R.id.menu_group_chats, false); mMenu.setGroupVisible(R.id.menu_group_contacts, true); mMenu.setGroupVisible(R.id.menu_group_otr_verified,false); mMenu.setGroupVisible(R.id.menu_group_otr_unverified,false); mMenu.setGroupVisible(R.id.menu_group_otr_off,false); } } mToolbar.setOnMenuItemClickListener(new OnMenuItemClickListener …

13
การสร้างหน้าจอการตั้งค่าด้วยการสนับสนุนแถบเครื่องมือ (v21)
ฉันประสบปัญหาในการใช้แถบเครื่องมือดีไซน์ Material ใหม่ในไลบรารีการสนับสนุนบนหน้าจอการตั้งค่า ฉันมีไฟล์ settings.xml ดังต่อไปนี้: <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <PreferenceCategory android:title="@string/AddingItems" android:key="pref_key_storage_settings"> <ListPreference android:key="pref_key_new_items" android:title="@string/LocationOfNewItems" android:summary="@string/LocationOfNewItemsSummary" android:entries="@array/new_items_entry" android:entryValues="@array/new_item_entry_value" android:defaultValue="1"/> </PreferenceCategory> </PreferenceScreen> สตริงถูกกำหนดไว้ที่อื่น

10
วิธีรับ Toolbar จากแฟรกเมนต์
ฉันต้องActionBarActivityมีNavigationDrawerและการใช้ support_v7 Toolbarเป็น ActionBar ในแถบเครื่องมือเศษชิ้นส่วนของฉันมีมุมมองที่กำหนดเอง ในส่วนอื่น ๆToolbarควรแสดงชื่อเรื่อง วิธีรับToolbarอินสแตนซ์สำหรับการปรับแต่งจากชิ้นส่วน? ฉันสามารถรับ ActionBar ได้getActivity().getActionBar()แต่ถ้าฉันเรียกsetTitle()อินสแตนซ์นี้ว่า ActionBar จะไม่ทำอะไรเลย UPD: ในกรณีของฉัน ((ActionBarActivity) getActivity()).getSupportActionBar().setTitle(); (ตามที่ MrEngineer13 กล่าว) ไม่ทำงานในการสร้างส่วนแรกเพราะฉันเรียกมันจาก onHiddenChanged () ตอนนี้ฉันเพิ่มอีกหนึ่งรายการใน onCreateView () และใช้งานได้ดี

11
ไม่สามารถจับเหตุการณ์การคลิกปุ่มหน้าแรกของแถบเครื่องมือ
ฉันได้ติดตั้งไลบรารี appcompat ใหม่ล่าสุดและใช้Toolbaras action bar แต่ปัญหาคือฉันไม่สามารถจับเหตุการณ์การคลิกปุ่มโฮม / ไอคอนแฮมเบอร์เกอร์ได้ ฉันได้ลองดูทุกอย่างแล้ว แต่ดูเหมือนจะไม่พบปัญหาที่คล้ายกัน นี่คือActivityชั้นเรียนของฉัน: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); // Set up the drawer. navDrawerFragment = (NavigationDrawerFragment) getSupportFragmentManager() .findFragmentById(R.id.navigation_drawer); navDrawerFragment.setUp( R.id.navigation_drawer, (DrawerLayout) findViewById(R.id.drawer_layout), toolbar); } และนี่คือคลาส NavigationDrawerFragment ของฉัน: public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (savedInstanceState …

7
ฉันจะสไตล์ appcompat-v7 Toolbar เช่น Theme.AppCompat.Light.DarkActionBar ได้อย่างไร
ฉันพยายามสร้างรูปลักษณ์Theme.AppCompat.Light.DarkActionBarใหม่ด้วยแถบเครื่องมือไลบรารีสนับสนุนใหม่ ถ้าฉันเลือกTheme.AppCompat.Lightแถบเครื่องมือของฉันจะสว่างและถ้าฉันเลือกTheme.AppCompatมันจะมืด (ในทางเทคนิคคุณต้องใช้.NoActionBarเวอร์ชัน แต่เท่าที่ฉันสามารถบอกได้ข้อแตกต่างเพียงอย่างเดียวคือ <style name="Theme.AppCompat.NoActionBar"> <item name="windowActionBar">false</item> <item name="android:windowNoTitle">true</item> </style> ตอนนี้ไม่มีTheme.AppCompat.Light.DarkActionBarแต่ไร้เดียงสาฉันคิดว่ามันดีพอที่จะทำด้วยตัวเอง <style name="Theme.AppCompat.Light.DarkActionBar.NoActionBar"> <item name="windowActionBar">false</item> <item name="android:windowNoTitle">true</item> </style> อย่างไรก็ตามแถบเครื่องมือของฉันยังคงเป็นLightธีม ตอนนี้ฉันใช้เวลาหลายชั่วโมงในการลองใช้ชุดค่าผสมที่แตกต่างกันในการผสมธีมมืด (ฐาน) และธีมแสง แต่ฉันไม่พบชุดค่าผสมที่จะทำให้ฉันมีพื้นหลังที่สว่างในทุกสิ่งยกเว้นแถบเครื่องมือ มีวิธีการAppCompat.Light.DarkActionBarดูด้วยการนำเข้าandroid.support.v7.widget.Toolbarหรือไม่?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.