【问题标题】:Can we use android:attr/spinnerStyle for TextView in Android我们可以在 Android 中为 TextView 使用 android:attr/spinnerStyle
【发布时间】:2013-01-29 11:22:45
【问题描述】:

在我的应用程序中,我尝试更改 Spinner 的文本颜色,通过尝试更改我读过的 Spinner 的文本颜色,我们可以使用 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..

帮助我,给你宝贵的建议..

【问题讨论】:

    标签: android styles android-styles


    【解决方案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"?>
    

    并将该可绘制对象设置为您的背景:

    <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>
    

    这就是用于设置列表视图样式的可绘制对象:

    <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>
    

    就是这样。

    【讨论】:

    • 我们可以在 Spinner 中的 List 下拉菜单中更改背景颜色吗
    • 我们可以对 ListView 应用相同的内容吗?我正在使用具有 MultipleChoiceMode 的 ListView??
    • 我刚刚添加了如何设置列表视图样式的信息。
    • 如何设置ListView的Adapter
    • listview.setAdapter(adapter); 其中适配器是您的自定义或其他类型的适配器。
    【解决方案2】:

    如果您想滚动TextView 中的文本,就好像文本比分配给TextView 的大小要大得多,那么您可以在layout-xml 的TextView 中添加以下参数

     android:scrollbars="vertical"
    

    如果可行,请告诉我。

    【讨论】:

      【解决方案3】:

      您可以依赖 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>
      

      【讨论】:

        猜你喜欢
        • 2015-07-31
        • 2013-09-06
        • 1970-01-01
        • 2011-10-14
        • 1970-01-01
        • 2017-07-11
        • 1970-01-01
        • 2020-04-14
        • 1970-01-01
        相关资源
        最近更新 更多