2014-11-25 48 views
15

Làm cách nào để đạt được thiết kế material design của spinner trong hộp công cụ? tôi đã cố gắng nhưng sau spinner của tôi trông như thế nàyPhong cách thanh công cụ của Android Spinner

enter image description here

<android.support.v7.widget.Toolbar 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="56dp" 
    android:background="@color/main_color" 
    app:contentInsetLeft="14dp" 
    app:contentInsetRight="14dp" 
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
    app:theme="@style/ThemeOverlay.AppCompat.ActionBar"> 

    <Spinner 
     android:id="@+id/spinner_nav" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 

</android.support.v7.widget.Toolbar> 

sdk tối thiểu của tôi là 15.

trên onCreate tôi

ButterKnife.inject(this); 

    mToolbar.inflateMenu(R.menu.menu_login); 
    mToolbar.setTitle(R.string.sign_in); 
    mToolbar.setOnMenuItemClickListener(this); 

    SpinnerAdapter spinnerAdapter = ArrayAdapter.createFromResource(this, 
      R.array.options, android.R.layout.simple_spinner_dropdown_item); 

    mSpinner.setAdapter(spinnerAdapter); 
    mSpinner.setOnItemSelectedListener(this); 

Một menu là một tờ tạm thời giấy luôn chồng lên Thanh ứng dụng, thay vì hoạt động như một phần mở rộng của Thanh ứng dụng.

bất kỳ liên kết sẽ là một trợ giúp lớn

CẬP NHẬT

Tôi đã quản lý để đạt được những gì tôi muốn

enter image description here

tôi được sử dụng theo cách này

ButterKnife.inject(this); 

     mToolbar.setTitle(R.string.sign_in); 
     setSupportActionBar(mToolbar); 

     SpinnerAdapter spinnerAdapter = ArrayAdapter.createFromResource(getSupportActionBar().getThemedContext(), 
       R.array.options, android.R.layout.simple_spinner_dropdown_item); 

     getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); 
     getSupportActionBar().setListNavigationCallbacks(spinnerAdapter, this); 

và xml tôi

<android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="56dp" 
     android:background="@color/app_secondary_color" 
     app:contentInsetLeft="14dp" 
     app:contentInsetRight="14dp" 
     app:popupTheme="@style/ThemeOverlay.AppCompat" 
     app:theme="@style/ThemeOverlay.AppCompat.ActionBar"> 

    </android.support.v7.widget.Toolbar> 

Nhưng Làm thế nào để làm cho nó trắng và màu chữ của menu là màu xanh? cũng có vấn đề này. có vẻ như nó quá xa? cách nào để sửa mũi tên thả xuống này?

enter image description here

Cập nhật 2

tốt sau khi trải qua rất nhiều thời gian cố gắng, tôi đã đạt được như thế nào để làm cho nó màu trắng và màu chữ đen qua chuyện này. Tôi đã tạo ra bố cục tùy chỉnh của tôi cho phong cách thả xuống

<?xml version="1.0" encoding="utf-8"?> 

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/text1" 
    style="?android:attr/spinnerDropDownItemStyle" 
    android:singleLine="true" 
    android:layout_width="match_parent" 
    android:background="@color/background_material_light" 
    android:textColor="@color/abc_primary_text_material_light" 
    android:layout_height="48dp" 
    android:ellipsize="marquee"/> 

sau đó thêm mã này vào onCreate

spinnerAdapter.setDropDownViewResource(R.layout.custom_simple_spinner_dropdown_item); 

Vấn đề Chỉ của tôi bây giờ tôi gặp phải là tình trạng báo chí không hoạt động, nó chỉ là một chiếc máy bay trắng. nếu bạn thấy trên menu bật lên khác, khi bạn nhấp vào một mục, màu nền sẽ trở nên tối hơn một chút. Ngoài ra biểu tượng gây phiền nhiễu này vẫn còn quá xa văn bản.

+0

bạn đang cố gắng đạt được điều gì, trái hoặc phải? – tyczj

+0

đúng. hiện tại ứng dụng của tôi ở bên trái.tôi cần trình đơn để nổi trên spinner như đã nói trong hướng dẫn vật chất – Milk

+0

bạn đã thử thay đổi chủ đề cơ sở thành Ánh sáng? – waqaslam

Trả lời

0

Bạn nên tạo color state list resource và áp dụng làm nền cho CheckedTextView. Đối với biểu tượng mũi tên quá xa, AFAIK đó là do chiều dài của trẻ em, nó đi xa như đứa trẻ dài nhất. Vì vậy, không có cách nào để tùy chỉnh điều đó.

Các vấn đề liên quan