uni-app Android 自定义隐私弹窗示例中 按钮字体颜色如何修改 android:textColor 无效
uni-app Android 自定义隐私弹窗示例中 按钮字体颜色如何修改 android:textColor 无效
XML代码示例
<Button
android:id="@+id/btn_custom_privacy_sure"
android:layout_width="match_parent"
android:layout_height="35dp"
android:background="@drawable/rounded_button"
android:paddingLeft="12dp"
android:paddingTop="5dp"
android:paddingRight="12dp"
android:paddingBottom="5dp"
android:text="确认"
android:textColor="@drawable/dcloud_custom_rich_dialog_button_text_selecter"
android:textSize="14sp"
android:visibility="gone" />
dcloud_custom_rich_dialog_button_text_selecter.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:textColor="#FFFFFF"/>
<item android:state_pressed="true" android:color="#FFFFFF"/>
<item android:state_pressed="false" android:textColor="#9A9A9A"/>
<item android:state_pressed="false" android:color="#9A9A9A"/>
</selector>
屏幕截图
xml设置Button的android:textColor无效时,在manifest.json中privacy下配置styles就可以了
styles 里面配置了没有效果
“privacy” : { “prompt” : “template”, “template” : { “title” : “用户协议及隐私政策”, “message” : “为了保障您的合法权益,请您阅读并同意<a href=“static/html/userAgreement.html”>《用户协议》及<a href=“static/html/privacy.html”>《隐私政策》”, “buttonAccept” : “同意并继续”, “buttonRefuse” : “暂不同意” }, “styles” : { “borderRadius” : “5px”, “title” : { “color” : “#ff00ff” }, “buttonAccept” : { “color” : “#ffff00” }, “buttonRefuse” : { “color” : “#00ffff” }, “buttonVisitor” : { “color” : “#00ffff” } } }, 是这样配的吗?
大哥,把代码贴一下
兄弟,这部分代码可以发分享一下吗
在uni-app中,如果你尝试通过原生Android属性如android:textColor
来修改自定义弹窗中按钮的字体颜色,会发现这种方式通常不会生效,因为uni-app主要使用的是Vue.js框架和Web技术栈来构建跨平台应用。这意味着大部分UI和样式应该通过CSS或Vue组件的样式绑定来管理。
以下是一个示例,展示如何在uni-app中自定义一个隐私弹窗,并修改按钮的字体颜色。这个示例将使用Vue的<style>
标签和CSS来实现样式的自定义。
1. 创建弹窗组件
首先,创建一个新的Vue组件文件,比如PrivacyPopup.vue
,用于显示隐私弹窗。
<template>
<view class="privacy-popup">
<view class="popup-content">
<text>This is a privacy popup.</text>
<button @click="accept" class="popup-button accept-button">Accept</button>
<button @click="decline" class="popup-button decline-button">Decline</button>
</view>
</view>
</template>
<script>
export default {
methods: {
accept() {
// 处理接受逻辑
},
decline() {
// 处理拒绝逻辑
}
}
}
</script>
<style scoped>
.privacy-popup {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: rgba(0, 0, 0, 0.5);
display: flex;
justify-content: center;
align-items: center;
}
.popup-content {
background-color: white;
padding: 20px;
border-radius: 10px;
text-align: center;
}
.popup-button {
padding: 10px 20px;
margin: 10px;
border: none;
border-radius: 5px;
font-size: 16px;
}
.accept-button {
background-color: #4CAF50;
color: white; /* 设置接受按钮的字体颜色 */
}
.decline-button {
background-color: #f44336;
color: white; /* 设置拒绝按钮的字体颜色 */
}
</style>
2. 使用弹窗组件
在你的主页面或其他需要显示弹窗的页面中引入并使用这个组件。
<template>
<view>
<!-- 其他内容 -->
<PrivacyPopup v-if="showPopup" />
</view>
</template>
<script>
import PrivacyPopup from './components/PrivacyPopup.vue';
export default {
components: {
PrivacyPopup
},
data() {
return {
showPopup: false
};
},
methods: {
showPrivacyPopup() {
this.showPopup = true;
}
}
}
</script>
通过这种方式,你可以完全控制弹窗的样式,包括按钮的字体颜色,而无需依赖原生Android属性。