造型微调动作栏

时间:2014-10-22 06:17:39

标签: android android-actionbar android-spinner

您好我的Spinner Action Bar样式有问题。我有像这样的定制适配器Spinner:

@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/那样更改Style Spinner

enter image description here

那怎么解决呢?对不起我的英文

1 个答案:

答案 0 :(得分: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"/>