代码之家  ›  专栏  ›  技术社区  ›  greysqrl

如何右对齐Android微调器

  •  7
  • greysqrl  · 技术社区  · 10 年前

    我正在尝试右对齐Android微调器的文本。我已经经历了堆栈溢出并尝试了推荐的解决方案,但它对我不起作用,因此,我对自己做错了什么感到有点困惑。我的感觉是,由于我犯了一个错误,我的布局没有被正确拾取。

    我的活动。xml文件

    <Spinner
    android:id="@+id/spinnerStoreType"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"/>
    

    在res\layout下,我创建了一个名为simple_spinner_item.xml的文件

    <?xml version="1.0" encoding="utf-8"?>
    
    <TextView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="40sp"
        android:textColor="#FFFFFF"
        android:padding="10dip"
        android:gravity="right"
        />
    

    最后,在我的活动中,我使用如下:

    spinnerStoreType = (Spinner) findViewById(R.id.spinnerStoreType);
    ArrayAdapter<CharSequence> adapter =    
    ArrayAdapter.createFromResource(this,
    R.array.transaction_store_array, android.R.layout.simple_spinner_item);
    
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
    spinnerStoreType.setAdapter(adapter);
    

    所以,我相信使用的simple_spinner_item是默认的,Android的。我不知道如何让它使用我的定制。我想如果它有相同的名字,这会自动发生吗?

    我们一如既往地感谢任何帮助。

    3 回复  |  直到 10 年前
        1
  •  10
  •   Sanjeet A    10 年前

    您可以完全使用样式来实现这一点。我认为这是最好的方法。 这是我的styles.xml中的代码-

        <style name="AppTheme.Spinner">
            <item name="android:spinnerItemStyle">@style/SpinnerItem</item>
            <item name="android:spinnerDropDownItemStyle">@style/SpinnerDropDownItem</item>
        </style>
    
        <style name="SpinnerItem">
            <item name="android:gravity">right|center_vertical</item>
            <item name="android:paddingRight">16dp</item>
        </style>
    
        <style name="SpinnerDropDownItem">
            <item name="android:gravity">right|center_vertical</item>
            <item name="android:paddingRight">16dp</item>
        </style>
    

    这是微调器的实现-

           <Spinner
                android:id="@+id/type"
                android:layout_width="match_parent"
                android:layout_height="48dp"
                android:layout_below="@id/title"
                android:entries="@array/data"
                android:theme="@style/AppTheme.Spinner" />
    
        2
  •  3
  •   MoQ93    10 年前

    android.R.layout.simple_spinner_item 引用 安卓 库,并且将没有您的自定义属性。你应该指你的 拥有 使用布局 R.layout.simple_spinner_item .

        3
  •  0
  •   Shivam Agarwal    6 年前

    如果您想使用 android.R.layout.simple_spinner_item 作为微调器项,添加 spinnerStoreType.setGravity(Gravity.RIGHT) 对java代码进行右对齐。因此,您的代码可以如下:

    spinnerStoreType = (Spinner) findViewById(R.id.spinnerStoreType);
    spinnerStoreType.setGravity(Gravity.RIGHT);   
    ArrayAdapter<CharSequence> adapter =    
    ArrayAdapter.createFromResource(this,
    R.array.transaction_store_array, android.R.layout.simple_spinner_item);
    
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
    spinnerStoreType.setAdapter(adapter);