2014-10-22 118 views
1

你好,我有問題,造型微調操作欄。我有微調與自定義適配器這樣的:造型微調操作欄

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     ...   
     // Spinner list 
     SpinnerMenuForm = new ArrayList<SpinnerNavItem>(); 
     SpinnerMenuForm.add(new SpinnerNavItem("02","Fill Order - HSD Bunker", "HSD")); 
     SpinnerMenuForm.add(new SpinnerNavItem("14","Fill Order - MFO Bunker", "MFO")); 
     // title drop down adapter 
     adapterSpinnerMenuForm = new Adapter_List_Form(getApplicationContext(), SpinnerMenuForm);  
     ... 
} 

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate our menu from the resources by using the menu inflater. 
     getMenuInflater().inflate(R.menu.main, menu); 

     View view1= (View) MenuItemCompat.getActionView(actionbar_form); 
     if (view1 instanceof Spinner) 
     { 
      final Spinner spinner = (Spinner) view1; 
      spinner.setAdapter(adapterSpinnerMenuForm); 
      spinner.setOnItemSelectedListener(new OnItemSelectedListener() { 

       @Override 
       public void onItemSelected(AdapterView<?> parent, View view, 
         int position, long id) { 
        TextView txtType= (TextView)spinner.getAdapter().getView(position, null, null).findViewById(R.id.txtType); 
        Variabel.type= txtType.getText().toString(); 
       } 

       @Override 
       public void onNothingSelected(AdapterView<?> parent) { 

       } 
      });    

     } 
     return true; 
} 

與此適配器微調

@Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     if (convertView == null) { 
      LayoutInflater mInflater = (LayoutInflater) 
        context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE); 
      convertView = mInflater.inflate(R.layout.list_item_form, null); 
     } 

     txtNumber = (TextView) convertView.findViewById(R.id.txtNumber); 
     txtTitle = (TextView) convertView.findViewById(R.id.txtTitle); 
     txtType = (TextView) convertView.findViewById(R.id.txtType); 

     txtNumber.setText(spinnerNavItem.get(position).getNumber()); 
     txtTitle.setText(spinnerNavItem.get(position).getTitle()); 
     txtType.setText(spinnerNavItem.get(position).getType()); 
     txtTitle.setVisibility(View.GONE); 
     return convertView; 
    } 


    @Override 
    public View getDropDownView(int position, View convertView, ViewGroup parent) { 
     if (convertView == null) { 
      LayoutInflater mInflater = (LayoutInflater) 
        context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE); 
      convertView = mInflater.inflate(R.layout.list_item_form, null); 
     } 

     txtNumber = (TextView) convertView.findViewById(R.id.txtNumber); 
     txtTitle = (TextView) convertView.findViewById(R.id.txtTitle); 
     txtType = (TextView) convertView.findViewById(R.id.txtType); 

     txtNumber.setText(spinnerNavItem.get(position).getNumber());   
     txtTitle.setText(spinnerNavItem.get(position).getTitle()); 
     txtType.setText(spinnerNavItem.get(position).getType()); 
     return convertView; 
    } 

這個項目微調佈局

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

    <TextView android:id="@+id/txtNumber" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerVertical="true" 
     android:layout_marginRight="5dp" 
     /> 

    <TextView android:id="@+id/txtTitle" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerVertical="true" 
     android:layout_toRightOf="@id/txtNumber"/> 

    <TextView android:id="@+id/txtType" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:visibility="gone"/> 

</RelativeLayout> 

結果

enter image description here

我用http://jgilfelt.github.io/android-actionbarstylegenerator/但永遠不會改變風格微調一樣,在教程http://blog.stylingandroid.com/styling-the-actionbar-part-4/這樣

enter image description here

那麼如何解決呢?對不起,我的英語

+0

檢查我的答案 – 2014-10-22 06:48:38

回答

0
<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="20dp" 
android:padding="5dp" 
android:background="#ff00DDED"> /////clour code thst use 

<TextView android:id="@+id/txtNumber" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerVertical="true" 
    android:layout_marginRight="5dp" 
    /> 

<TextView android:id="@+id/txtTitle" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerVertical="true" 
    android:layout_toRightOf="@id/txtNumber"/> 

<TextView android:id="@+id/txtType" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:visibility="gone"/> 

+0

感謝回答,但項目的高度不喜歡的樣子''android.R.layout.simple_spinner_dropdown_item,怎麼樣? – 2014-10-22 07:01:41

+0

android:layout_height =「20dp」in RelativeLayout – 2014-10-22 07:05:20