如何让textview的背景在layout的child时透明
How to make textview's background transparent when it is the child of the layout
我在布局中有一个文本视图,我将点击侦听器设置为布局,按下布局时更改了布局的颜色。但是我想将文本视图的背景设置为透明但不能。它采用 window 的背景(window 的背景是灰色的,我的布局的背景是白色的)而不是布局的背景。
<LinearLayout android:layout_width="match_parent"
android:layout_height="50dp"
style="@style/TestLayout">
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="Test"
android:background="@android:color/transparent"/>
</LinearLayout>
在styles.xml
<style name="TestLayout" parent="AppTheme.NoActionBar">
<item name="android:background">@drawable/selector_test_small_layout</item>
</style>
在selector_test_small_layout
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true" android:state_enabled="true"
android:drawable="@drawable/s_pressed_layout" />
<item android:state_hovered="true" android:state_enabled="true"
android:drawable="@drawable/s_pressed_layout"/>
<item android:state_enabled="true" android:drawable="@drawable/s_color_primary"/>
<item android:state_enabled="false" android:drawable="@drawable/s_color_primary"/>
</selector>
更新: 抱歉我的 xml 不够完整。明天我会正确更新Y_Y。现在没有源码,只有图片
更新: 我在 styles.xml
中包含了更多内容
<style name="AppTheme" parent="Theme.AppCompat.Light">
<item name="android:windowContentOverlay">@null</item>
<item name="colorPrimary">@color/colorPrimary</item>
**<item name="android:windowBackground">@color/setting_divider</item>**
</style>
在AndroidManifest.xml
<application
android:name=".TestApplication"
android:allowBackup="true"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:largeHeap="true"
android:supportsRtl="true"
**android:theme="@style/AppTheme**">
....
</application>
我检查了上面添加的代码,我根本看不出任何问题。您能否分享屏幕快照以指出确切的问题。您也可以尝试在 TextView 上设置 background="@null"。
当TextView.Background为null时,取textView,parent background
有点老,但希望对其他人有所帮助
<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@drawable/backfull</item>
<item name="android:windowActionBar">false</item>
<item name="android:windowActionModeOverlay">true</item>
<item name="windowActionModeOverlay">true</item>
</style>
<style name="AppTheme2" parent="AppTheme.Base">
<item name="colorPrimary">@drawable/backfull</item>
<item name="colorPrimaryDark">@android:color/white</item>>
<item name="colorAccent">@android:color/black</item>
<item name="colorButtonNormal">@android:color/white</item>
</style>
<style name="ToolbarTheme" parent="Widget.AppCompat.Toolbar">
<item name="android:background">@drawable/backfull</item>
<item name="background">@android:color/black</item>
<item name="titleTextAppearance">@style/ToolbarTitleTheme</item>
<item name="popupTheme">@style/ThemeOverlay.AppCompat.Dark.ActionBar</item>
<item name="theme">@style/ThemeOverlay.AppCompat.Dark.ActionBar</item>
</style>
<style name="ToolbarTitleTheme">
<item name="android:textColor">@android:color/holo_red_dark</item>
<item name="android:textStyle">bold</item>
</style>
我在布局中有一个文本视图,我将点击侦听器设置为布局,按下布局时更改了布局的颜色。但是我想将文本视图的背景设置为透明但不能。它采用 window 的背景(window 的背景是灰色的,我的布局的背景是白色的)而不是布局的背景。
<LinearLayout android:layout_width="match_parent"
android:layout_height="50dp"
style="@style/TestLayout">
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="Test"
android:background="@android:color/transparent"/>
</LinearLayout>
在styles.xml
<style name="TestLayout" parent="AppTheme.NoActionBar">
<item name="android:background">@drawable/selector_test_small_layout</item>
</style>
在selector_test_small_layout
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true" android:state_enabled="true"
android:drawable="@drawable/s_pressed_layout" />
<item android:state_hovered="true" android:state_enabled="true"
android:drawable="@drawable/s_pressed_layout"/>
<item android:state_enabled="true" android:drawable="@drawable/s_color_primary"/>
<item android:state_enabled="false" android:drawable="@drawable/s_color_primary"/>
</selector>
更新: 抱歉我的 xml 不够完整。明天我会正确更新Y_Y。现在没有源码,只有图片
更新: 我在 styles.xml
中包含了更多内容<style name="AppTheme" parent="Theme.AppCompat.Light">
<item name="android:windowContentOverlay">@null</item>
<item name="colorPrimary">@color/colorPrimary</item>
**<item name="android:windowBackground">@color/setting_divider</item>**
</style>
在AndroidManifest.xml
<application
android:name=".TestApplication"
android:allowBackup="true"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:largeHeap="true"
android:supportsRtl="true"
**android:theme="@style/AppTheme**">
....
</application>
我检查了上面添加的代码,我根本看不出任何问题。您能否分享屏幕快照以指出确切的问题。您也可以尝试在 TextView 上设置 background="@null"。
当TextView.Background为null时,取textView,parent background
有点老,但希望对其他人有所帮助
<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@drawable/backfull</item>
<item name="android:windowActionBar">false</item>
<item name="android:windowActionModeOverlay">true</item>
<item name="windowActionModeOverlay">true</item>
</style>
<style name="AppTheme2" parent="AppTheme.Base">
<item name="colorPrimary">@drawable/backfull</item>
<item name="colorPrimaryDark">@android:color/white</item>>
<item name="colorAccent">@android:color/black</item>
<item name="colorButtonNormal">@android:color/white</item>
</style>
<style name="ToolbarTheme" parent="Widget.AppCompat.Toolbar">
<item name="android:background">@drawable/backfull</item>
<item name="background">@android:color/black</item>
<item name="titleTextAppearance">@style/ToolbarTitleTheme</item>
<item name="popupTheme">@style/ThemeOverlay.AppCompat.Dark.ActionBar</item>
<item name="theme">@style/ThemeOverlay.AppCompat.Dark.ActionBar</item>
</style>
<style name="ToolbarTitleTheme">
<item name="android:textColor">@android:color/holo_red_dark</item>
<item name="android:textStyle">bold</item>
</style>