如何解决Android主题不适用于Stripe CardMultilineWidget-react-native-android bridge
我是移动开发和Android的新手。我正在开发一个React Native应用程序,并试图从Stripe android集成CardMultilineWidget(通过react native bridge)。 CardMultilineWidget运行正常,我可以与Android之间收发事件以响应本机JS。但是唯一的问题是我无法在本机代码中自定义小部件的样式。
我已经尝试过了。我正在使用XML解析器读取资源文件,并将其传递给CardMultilineWidget的构造函数以使用这些属性来构建窗口小部件。其他属性(如shouldShowPostalCode)似乎可以正常工作,但不能正常工作。
XmlPullParser parser = context.getResources().getXml(R.xml.cardinputattributes);
try {
parser.next();
parser.nextTag();
} catch (Exception e) {
e.printStackTrace();
}
reactContext = context;
AttributeSet attr = Xml.asAttributeSet(parser);
cardMultilineWidget = new CardMultilineWidget(context,attr);
我正在加载xml资源文件并使用属性集创建窗口小部件。但是由于某种原因,资源文件中的主题没有生效。 这是资源文件 XML Resource file
<?xml version="1.0" encoding="utf-8"?>
<com.stripe.android.view.CardMultilineWidget android:id="@+id/cardMultiLineWidget"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_centerVertical="true"
android:theme="@style/CreditCardTheme"
android:imeActionLabel="@string/next_action_string"
app:shouldShowPostalCode="false"
android:padding="5dp"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" />
这是带有主题的文件-Themes XML resource file
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="android:textColor">#FFFFFF</item>
</style>
<style name="CreditCardTheme" parent="StripeBaseTheme">
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primaryDark</item>
<item name="android:textColorHint">@color/lightYellow</item>
<item name="android:textColorPrimary">@color/primary</item>
<item name="android:textColorSecondary">@color/primary</item>
<item name="android:textColor">@color/textPrimary</item>
<item name="titleTextColor">@color/title</item>
<item name="colorAccent">@color/accent</item>
<item name="colorControlNormal">@color/accent</item>
<item name="colorControlActivated">@color/lightYellow</item>
<item name="android:editTextColor">@color/textPrimary</item>
<item name="editTextColor">@color/textPrimary</item>
</style>
</resources>
无论我给android:theme属性设置什么主题或样式,它都无法正常工作。 这是应用程序的用户界面。 App screenshot
我希望能够自定义样式,例如不同的突出显示颜色,文本颜色等。非常感谢您的帮助。预先谢谢你。
编辑:将主题作为属性传递似乎无效。我将布局文件与给定的cardmultilinewidget一起使用,并使用LayoutInflater以编程方式对其进行了充气处理,并且它可以正常工作。感谢@wsw为我指出正确的方向。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。