Как сделать фон заголовка прозрачным в приложении android - PullRequest
0 голосов
/ 28 мая 2020

В следующем Android приложении есть проблема, руководство которой приветствуется. Это приложение предназначено для поддержки микроконтроллера Renesas RX130 и демонстрационного дизайна оборудования Texas Instrument CC2650 Bluetooth Low Energy. На начальной странице сканирования устройства плитка имеет ярко-красный фон, как показано ниже.

enter image description here

Панель инструментов имеет градиентный фон от фиолетового до красного.

Вопрос: Как сделать фон Red Tile прозрачным?

В приложении есть два действия. Ниже приведены выдержки из AndroidManifest.xml файла

    <activity android:name="capsense.application.rx130_cc2650.MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name="capsense.application.rx130_cc2650.DeviceControlActivity"/>
    <service android:name="capsense.application.rx130_cc2650.BLE_Service" android:enabled="true" />

Код из activity_main.xml, listitem.xml, toolbar.xml и MainActivity.java сгенерировал первое действие. Соответствующие разделы кода взяты из файлов ниже.

Исключения из activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<include
    android:id="@+id/toolbar"
    layout="@layout/toolbar"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

 </android.support.constraint.ConstraintLayout>

Исключения из toolbar.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/ic_launcher_background_rx130_cc2650"
app:popupTheme="@style/CustomerPopUpMenuStyle"
app:theme="@style/CustomerToolbarStyle"
app:titleTextColor="@android:color/white">

</android.support.v7.widget.Toolbar>

Исключения из MainActivity.java

  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(capsense.application.rx130_cc2650.R.layout.activity_main);

    mScanning = false;

    //Get User Interface Elements
    Toolbar toolbar = findViewById(capsense.application.rx130_cc2650.R.id.toolbar);
    toolbar.setTitle(R.string.app_label);
    setSupportActionBar(toolbar);

Полный проект доступен на github Android_Mobile_App_RX130_CC2650


Ссылки :

1 Ответ

1 голос
/ 28 мая 2020

Имеется конфликт цветов от нескольких источников к фону.

Не используйте theme без необходимости, например

  • тема влияет на все представления и макеты внутри панели инструментов

  • стиль влияет только на панель инструментов и не влияет на виды и макеты внутри панели инструментов

Пожалуйста, попробуйте следующие варианты, один из которых может работать для вас,

Вариант 1 (предпочтительно): обновить CustomerToolbarStyle код, как показано ниже

<style name="CustomerToolbarStyle" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:background">@drawable/ic_launcher_background_rx130_cc2650</item>
        <item name="android:title">@color/colorforeground</item>
 </style>

обновить toolbar.xml код, как показано ниже

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:popupTheme="@style/CustomerPopUpMenuStyle"
    style= "@style/CustomerToolbarStyle"
    app:titleTextColor="@android:color/white"/>

Вариант 2: установить прозрачный фон в CustomerToolbarStyle

<style name="CustomerToolbarStyle" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- set background color to transperant -->
        <item name="android:background">#00000000</item>
        <item name="android:title">@color/colorforeground</item>
    </style>

Вариант 3: удалить android:background из CustomerToolbarStyle

<style name="CustomerToolbarStyle" parent="Theme.AppCompat.Light.NoActionBar">
    
        <item name="android:title">@color/colorforeground</item>
</style>

Вариант 4: удалить app:theme="@style/CustomerToolbarStyle" из toolbar.xml

Если указанные выше параметры не работают, проверьте ссылки ниже

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...