2014-06-19 4 views
3

LinearLayour에 회 전자가 있습니다.Android의 회 전자에 텍스트를 가운데에 배치하는 방법

나는 스피너에 텍스트를 중심으로하는 것을 시도하고있다 :

<Spinner 
    android:id="@+id/project_Spinner" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginRight="50dp" 
    android:layout_marginLeft="50dp" 
    android:padding="1dip" 


    android:prompt="@string/spinner_title" 
/> 

활동의 회 전자의 선언 :

// Creating adapter for spinner 
    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, NomProjets); 

    // Drop down layout style - list view with radio button 
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

    // attaching data adapter to spinner 
    spinner.setAdapter(dataAdapter); 

enter image description here

이 해당 요소에 대한 내 XML이다

감사합니다.

+1

시도 안드로이드 : 중력 = 안드로이드가 추가 – TheModularMind

+0

"center_horizontal"중력 = "센터"를 스피너 요소 – hakiko

+0

그것은 작동하지 않습니다에! – xtensa1408

답변

6

실제로 Spinner에 대한 항목을 만드는 구성 요소가 어댑터입니다. 따라서 위젯을 TextView 중심으로 되돌리려면 (getView() 메서드를 재정 의하여) 사용자 정의해야합니다. 귀하의 경우에는

,이 코드로 new ArrayAdapter<String> ... 초기화를 대체 :

ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, NomProjets) 
{ 
    @Override 
    public View getView(int position, View convertView, ViewGroup parent) 
    { 
     return setCentered(super.getView(position, convertView, parent)); 
    } 

    @Override 
    public View getDropDownView(int position, View convertView, ViewGroup parent) 
    { 
     return setCentered(super.getDropDownView(position, convertView, parent)); 
    } 

    private View setCentered(View view) 
    { 
     TextView textView = (TextView)view.findViewById(android.R.id.text1); 
     textView.setGravity(Gravity.CENTER); 
     return view; 
    } 
}; 
+0

고맙습니다. 아주 잘 작동합니다. – xtensa1408

2

Matiash의 응답 작품.

실제로 스피너의 텍스트는 TextView에 래핑되므로 android.R.layout.simple_spinner_item.xml (sdk \ platforms \ android-xx \ data \에 있습니다)을 무시할 수 있습니다. res \ layout)/layout 폴더에 새 xml을 만들고 Texture center에 텍스트를 만들려면 android : gravity = "center"속성을 추가하십시오.

such like this:

관련 문제