带有layout.xml的android spinner文本大小无效

时间:2016-09-06 21:52:38

标签: android android-layout layout spinner android-spinner

我有这个布局

spinnertipocombustible.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="wrap_content"
    android:orientation="horizontal">
    <TextView
        android:id="@+id/textview"
        android:layout_height="30dip"
        android:layout_width="wrap_content"
        android:textSize="50dip"
        android:textColor="#ccddaa"
        />
</LinearLayout>

在dialogfragment中我有这段代码

listado=DM.RegresaTiposCombustible();
adapter= new TiposCombustibleAdapter(getActivity(),R.layout.spinnertipocombustible,listado);
adapter.setDropDownViewResource(R.layout.spinnertipocombustible);
spinner.setAdapter(adapter);

在下一张图片中,您可以看到文字大小,如果我改变则不会改变 这一行在spinnertipocombustible.xml中

android:textSize="50dip"

enter image description here

这是我的适配器..

public class TiposCombustibleAdapter extends ArrayAdapter<TipoCombustible>{

    private Context context;

    private List<TipoCombustible> tipoCombustibles;

    public TiposCombustibleAdapter(Context context, int textViewResourceId, List<TipoCombustible> tiposCombustible){

        super(context,textViewResourceId,tiposCombustible);
        this.context=context;
        this.tipoCombustibles=tiposCombustible;

    }

    public  int getCount(){

        return  tipoCombustibles.size();
    }

    public TipoCombustible getItem(int position){
        return  tipoCombustibles.get(position);
    }

    public long getItemId(int position){
        return  position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // I created a dynamic TextView here, but you can reference your own  custom layout for each spinner item
        TextView label = new TextView(context);
        label.setTextColor(Color.BLACK);
        // Then you can get the current item using the values array (Users array) and the current position
        // You can NOW reference each method you has created in your bean object (User class)
        label.setText(tipoCombustibles.get(position).getDescripcion());

        // And finally return your dynamic (or custom) view for each spinner item
        return label;
    }

    @Override
    public View getDropDownView(int position, View convertView,
                                ViewGroup parent) {
        TextView label = new TextView(context);
        label.setTextColor(Color.BLACK);
        label.setText(tipoCombustibles.get(position).getDescripcion());

        return label;
    }


}

5 个答案:

答案 0 :(得分:0)

尝试使用50sp50dp代替50dip。您可能还想尝试将layout_height更改为wrap_content而不是固定值。

答案 1 :(得分:0)

看看here android:textSize 的可用单位是:

  

可用单位是:px(像素),dp(与密度无关的像素),sp   (基于首选字体大小的缩放像素),单位为(英寸),mm   (毫米)。

因此,使用任何可接受的单位(例如,dp或sp),而不是 android:textSize =&#34; 50dip&#34;

答案 2 :(得分:0)

使用任何可接受的单位,例如android:textSize="50dip"dp,而不是sp

示例

android:textSize="50dp"
android:textSize="50sp"

答案 3 :(得分:0)

不要使用LinearLayout。只需删除该布局 并增加你的文本大小。它会起作用。

答案 4 :(得分:0)

试试这段代码...... 从textview中删除linearlayout并使用它。

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/textview"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:textSize="50dp"
    android:textColor="#ccddaa"
    />