【问题标题】:How to align text in the first visible line in a Spinner Android如何在 Spinner Android 中对齐第一条可见行中的文本
【发布时间】:2012-07-04 13:10:07
【问题描述】:

我在微调器中这样做

//文字居中对齐

http://i.stack.imgur.com/GE8aG.png

但我想实现这一目标

//文字左对齐

http://i.stack.imgur.com/FTjhs.png

我该怎么办?我尝试使用“重力”但不起作用

java代码:

void addProvinceSpinner() {

    ArrayList<String> listaProvince = new ArrayList<String>();
    listaProvince.add("MILANO");
    listaProvince.add("ROMA");
    listaProvince.add("BARI");

    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
            R.layout.layout_riga_spinner_inserzionisti,
            R.id.inserzionisti_txt_riga_spinner, listaProvince);

    spinner_province.setAdapter(dataAdapter);
}

xml 代码(R.layout.layout_riga_spinner_inserzionisti):

<TextView
    android:id="@+id/inserzionisti_txt_riga_spinner"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="10dp"
    android:textColor="#01a0d1"
    android:textSize="20sp" />

主xml代码:

<Spinner
    android:id="@+id/inserzionisti_spinner_province"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/inserzionisti_spinner_bg"
    android:prompt="@string/inserzionisti_prompt"/>

我刚刚解决了……

我必须设置

android:layout_width="wrap_content"

android:layout_width="fill_parent"

在微调器中...

谢谢大家!

【问题讨论】:

    标签: android android-view android-spinner


    【解决方案1】:
    Create an xml -  raw.xml and put this code:
    
    
    <?xml version="1.0" encoding="utf-8"?>
    <TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/spinnerTarget"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center" // As per your requirement (left, center , right etc)
    android:textColor="#454545"
    android:padding="5dip"
    android:textSize="14dip" />
    
    In class file use like this:
    
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
                this, R.array.im_arrays, R.layout.row_spiner);
    

    【讨论】:

    • 不起作用 :( ,结果是一样的...文本不会左对齐 :/
    • 如果你想让文本左对齐,那么什么都不做意味着不要设置任何我用上面的代码尝试过的东西,只删除这一行 android:gravity="center"。它显示在左侧。
    【解决方案2】:

    今天我自己遇到了这个问题。确实无法将其设置在实际的文本视图上。您必须改为更改 Spinner 的重力(这样做就足够了)。添加这个:

    android:gravity="center"
    

    像这样对你的微调器:

    <Spinner
        android:id="@+id/inserzionisti_spinner_province"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:background="@drawable/inserzionisti_spinner_bg"
        android:prompt="@string/inserzionisti_prompt"/>
    

    我正在使用android.R.layout.simple_spinner_item,像这样:

    new ArrayAdapter<String>(context, android.R.layout.simple_spinner_item, ...);
    

    【讨论】:

    • 微调器中没有属性“android:gravity”
    • 是的。我用文档和代码双重确认。例如,请参阅 Spinner 的 API 文档中的 xml 属性部分:developer.android.com/reference/android/widget/Spinner.html
    • 为了使当前选择的条目和下拉条目居中,我发现有必要在微调器和下拉项布局上设置 android:gravity。
    猜你喜欢
    • 1970-01-01
    • 2019-12-12
    • 1970-01-01
    • 1970-01-01
    • 2018-07-23
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 2011-12-26
    相关资源
    最近更新 更多