2012-08-08 21 views
5

Trong ứng dụng Google+, vị trí của mũi tên góc bên phải của ActionBarSpinner điều chỉnh theo thời lượng hiển thị chuỗi hiện tại. Ví dụ: chiều dài của Spinner có vẻ ngắn hơn khi Gia đình được chọn so với khi Người quen được chọn.Tự động định vị mũi tên góc phải của ActionBar Spinner dựa trên độ dài của tiêu đề được hiển thị

Tôi phải làm gì để có được mũi tên góc phải để vị trí động dựa trên độ dài của tiêu đề? Tôi đoán là có một thuộc tính tôi có thể đặt trong styles.xml sẽ làm điều đó cho tôi.

Dưới đây là styles.xml tôi:

<style name="MyStyle" parent="android:style/Theme.Holo"> 
    <item name="android:actionDropDownStyle">@style/MyDropDownNav</item> 
</style> 

<style name="MyDropDownNav" parent="android:style/Widget.Holo.Spinner"> 
    <item name="android:AttributeHere">AttributeValue</item> 
</style> 

Dưới đây là đoạn code tôi có trong MainActivity.java tôi:

ActionBar actionBar = getActionBar(); 
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); 

// Specify a SpinnerAdapter to populate the dropdown list. 
SpinnerAdapter dataAdapter = new ArrayAdapter<String>(
     actionBar.getThemedContext(), 
     android.R.layout.simple_list_item_1, android.R.id.text1, 
     new String[] { "AAAAAAAAAAAAAAA", "BB" }); 

// Set up the dropdown list navigation in the action bar. 
actionBar.setListNavigationCallbacks(dataAdapter, this); 

Không giống như trong Google+, vị trí của góc mũi tên của tôi là luôn luôn cố định. Vì vậy, nếu tôi chọn từ "AAAAAAAAAAAAAAA" đến "BB" từ trình đơn thả xuống, mũi tên sẽ không di chuyển chút nào.

+0

Bạn đã tìm ra cách chưa? Gần 4 năm đã trôi qua .. – Bruce

Trả lời

0

Vui lòng tham khảo mã android tinh khiết Calendar, trong bộ điều hợp, getView() luôn trả về mục hiện tại trong Calendar sao cho chiều rộng của Spinner bằng với mục hiện tại. Trên thực tế, chiều rộng Spinner trong ActionBar luôn được tính là độ dài của mục dài nhất. Calendar thực hiện một số quy trình đặc biệt tại đây.

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