在Android中,如何在微调器中将文本居中

在Android中,如何在微调器中将文本居中,android,Android,我的直线上有一个纺纱机 我正在尝试在微调器中居中文本: 这是我对该元素的XML: <Spinner android:id="@+id/project_Spinner" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginRight="50dp" android:layout_marginLeft="50dp"

我的直线上有一个纺纱机

我正在尝试在微调器中居中文本:

这是我对该元素的XML:

 <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);
//为微调器创建适配器
ArrayAdapter dataAdapter=新的ArrayAdapter(这是android.R.layout.simple\u spinner\u项,NomProjets);
//下拉式布局样式-带单选按钮的列表视图
dataAdapter.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉项);
//将数据适配器连接到微调器
spinner.setAdapter(dataAdapter);

谢谢,

实际上为
微调器创建项目的组件是适配器。因此,您应该自定义它(通过重写
getView()
方法)以返回居中的
TextView
小部件

在您的情况下,将
新阵列适配器…
初始化替换为以下代码:

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;
    }
};
ArrayAdapter dataAdapter=新的ArrayAdapter(这是android.R.layout.simple\u spinner\u项,NomProjets)
{
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图)
{
返回setCentered(super.getView(position,convertView,parent));
}
@凌驾
公共视图getDropDownView(int位置、视图转换视图、视图组父视图)
{
返回setCentered(super.getDropDownView(position,convertView,parent));
}
私有视图集居中(视图)
{
TextView TextView=(TextView)view.findViewById(android.R.id.text1);
textView.setGravity(Gravity.CENTER);
返回视图;
}
};

Matiash的答案很有效。还有一种方法:

实际上,微调器中的文本包装在文本视图中,因此我们可以覆盖android.R.layout.simple\u spinner\u item.xml(位于sdk\platforms\android xx\data\res\layout),在/layout文件夹中创建一个新的xml,并添加一个属性: android:gravity=“center”使文本位于文本视图的中心

尝试将android:gravity=“center\u horizontal”添加到微调器元素中