react native 修改安卓Switch颜色样式

在使用React Native的Switch组件时,发现颜色属性仅适用于iOS。通过查看源码,了解到在安卓上Switch对应的是SwitchCompat。为改变颜色,需要在布局加载前设置Theme。添加自定义样式并在setContentView前调用setTheme方法,即可实现颜色更改。将ReactRootView添加到指定布局后,调整颜色生效。


      最近在使用Switch控件的时候。官方文档是这样的


     

<Switch
          value={(this.state && this.state.switchValue) || false}
          onValueChange={(value) => {
            this.setState({switchValue: value})
          }}
          // Color props are iOS-only
          // thumbTintColor={'white'} // Removes shadow

        />

      重要的是其中的 Color props are iOS-only..  就这尴尬了。 


     费了几分钟看了源码,发现Switch是封装的原生组件,安卓里对应的是SwitchCompat控件。所以,要修改颜色,最简单的就是添加Theme.

     首先添加style

    

    <style name="Color1SwitchStyle">
        <item name="colorControlActivated">@color/white</item>
        <!-- Inactive thumb color switch关闭时的拇指按钮的颜色 -->
        <item name="colorSwitchThumbNormal">@color/tink_color</item>
        <!-- Inactive track color(30% transparency) switch关闭时的轨迹的颜色  30%这个颜色 -->
        <item name="android:colorForeground">@color/tink_color</item>

    </style>

    然后在setContentView之前setTheme就ok了。


   

   setTheme(R.style.Color1SwitchStyle);
   setContentView(R.layout.activity_apps_detail_for_react);

      这里我是将ReactRootView直接添加到activity_apps_detail_for_react这个布局中的。

      然后It work!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值