我们可以在Android中使用android:attr / spinnerStyle for TextView

时间:2013-01-29 11:22:46

标签: android styles android-styles

在我的应用程序中,我试图更改我的微调器的文本颜色,通过尝试更改微调器的文本颜色,我读过像我们可以使用 TextView 作为Spinner使用 Style.xml 作为以下 ...

Style.xml

<style name="spinners" parent="android:attr/spinnerStyle">
    <item name="android:textColor">@color/black</item>
    <item name="android:padding">5dp</item>
</style>

在我的XML文件中,我使用了TextView,如下所示

<TextView
        android:id="@+id/spinnerClassName"
        android:layout_width="180dp"
        android:layout_height="50dp"
        style="@style/spinners"
        android:layout_column="1"
        android:layout_row="0" />

如果我尝试了此概念,我无法使用此Spinner进行TextView操作..

帮助我,给你有价值的建议..

3 个答案:

答案 0 :(得分:1)

为您的微调器使用自定义布局,您可以在其中更改文本颜色。这是java示例如何执行此操作:

Spinner mySpinner = (Spinner)findViewById(R.id.spinner);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
     R.layout.row, R.id.weekofday, new String[]{"ELEM 1","ELEM 2"}); // layoout.row is your custom layout. 
   mySpinner.setAdapter(adapter);

样式微调器:

<?xml version="1.0" encoding="utf-8"?>

                   

并将该drawable设置为您的背景:

<Spinner android:id="@+id/spinner_chemical"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:drawSelectorOnTop="true"
     android:background="@drawable/myspinner_background"/> 

对于ListView,您可以设置如下样式:

<style name="ListViewCustomStyle" parent="android:Widget.ListView">
    <item name="android:listSelector">@drawable/list_selector_holo_light</item>
    <item name="android:fastScrollTrackDrawable">@drawable/fastscroll_thumb_holo</item>
    <item name="android:fastScrollThumbDrawable">@drawable/fastscroll_thumb_holo</item>
    <item name="android:dividerHeight">0.5dip</item>
    <item name="android:divider">#e9e9e9</item>
    <item name="android:fadingEdge">none</item>
    <item name="android:cacheColorHint">#00000000</item>
</style>

这是用于样式化列表视图的drawable:

<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:state_window_focused="false" android:drawable="@android:color/transparent" />

<!-- Even though these two point to the same resource, have two states so the drawable will invalidate itself when coming out of pressed state. -->
<item android:state_focused="true"  android:state_enabled="false" android:state_pressed="true" android:drawable="@drawable/list_selector_disabled_holo_light" />
<item android:state_focused="true"  android:state_enabled="false"                              android:drawable="@drawable/list_selector_disabled_holo_light" />
<item android:state_focused="true"                                android:state_pressed="true" android:drawable="@drawable/list_selector_background_transition_holo_light" />
<item android:state_focused="false"                               android:state_pressed="true" android:drawable="@drawable/list_selector_background_transition_holo_light" />
<item android:state_focused="true"                                                             android:drawable="@drawable/list_focused_holo" />
</selector>

就是这样。

答案 1 :(得分:0)

如果您要在TextView中滚动文字,就好像文字远远超过您分配到TextView的尺寸,那么您可以在layout-xml的TextView中添加以下参数

 android:scrollbars="vertical"

如果有效,请告诉我。

答案 2 :(得分:0)

您可以依赖appcompat-v7并创建样式元素,例如:

  <style name="FakeSpinner" parent="Widget.AppCompat.Spinner">
    <item name="android:textColor">@android:color/black</item>
    <item name="android:textSize">18sp</item>
    <item name="android:gravity">center_vertical</item>
  </style>