2012-10-05 5 views
4

저는 Actionbarsherlock을 사용 중이며 사용자 정의 작업 표시 줄 레이아웃을 사용하려고하지만 여전히 탐색 목록이 필요합니다. 그 결과 나는 IcsSpinner 위젯을 포함하고 있습니다. 그러나 너비는 항상 가장 큰 항목만큼 커야하며 이는 바람직하지 않습니다. 나는이 같은 결과 디버그에 액션 바에서 그것을 깨고 여전히 가지고 :Actionbarsherlock IcsSpinner - 너비가 항상 가장 넓은 항목으로 설정 됨

Short Text

enter image description here

조각 코드를

public class TestFragment extends SherlockFragment { 
private final String[] testStrings = {"Short","Not so long text"}; 
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    View view=inflater.inflate(R.layout.test_layout, container, false); 
    IcsSpinner spinner = (IcsSpinner)view.findViewById(R.id.test_spinner); 
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), 
      R.layout.spiner_test_row, R.id.spinner_text, testStrings); 
    spinner.setAdapter(adapter); 
    return(view); 
    } 
} 

test_layout.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" > 

<com.actionbarsherlock.internal.widget.IcsSpinner 
    android:id="@+id/test_spinner" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"/> 
</LinearLayout> 

R .layout.spinner_test_row

<?xml version="1.0" encoding="utf-8"?> 
<TextView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/spinner_text" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textSize="16sp" /> 

미세 (진저 브레드 에뮬레이터에서) 표준 스피너에 작품 변경 :

enter image description here

enter image description here

어떤 제안?

+0

@JakeWharton Wharton 어떻게 내부를 사용하지 않고 위의 진저 브레드 결과를 com.actionbarsherlock.internal.widget.IcsSpinner와 함께 사용합니까? – taraloca

답변

-1

Honeycomb + 버전의 Android를 실행하는 경우에도 ActionBarSherlock 내의 IcsSpinner 구성 요소의 기본 동작 인 것처럼 보입니다. 내 ICS 기기의 Square Wallet입니다.

Jake는 IcsSpinner 구성 요소를 사용하지 말 것을 제안했지만 사용자 정의 액션 바 레이아웃을 사용하고 탐색 목록 UI를 유지하는 간단한 방법은 없습니다. Jake가 제안하고 대안을 제시 할 수 없다면, 나는 그것을 계속 사용할 것이며, 그의 훌륭한 라이브러리의 미래 릴리스에 대한 완전한 테스트를 확실히 할 것입니다.

+0

triangle 스피너를 selectedNavigationItem의 너비에 배치 할 방법이 없다고 말하는 것입니까? – taraloca

+0

@taraloca 정확함, IcsSpinner는 항상 가장 긴 항목만큼 넓습니다. Jake Wharton 자신이 작성한 Square Wallet에서이 내용을 볼 수 있습니다. – nathanielwolf

관련 문제