Nano Hash - криптовалюты, майнинг, программирование

Как изменить значок действия вверх на кнопку с текстом на Android?

Я хотел бы изменить стиль кнопки действия «Вверх». В настоящее время это выглядит так:

введите здесь описание изображения

После долгих исследований переполнения стека и документации Android я увидел примеры, в которых значок кнопки действия «Вверх» можно заменить на пользовательский значок, например:

getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_yourindicator);

Однако это не то, что я ищу. Я хотел бы заменить значок кнопки действия «Вверх» текстом, например кнопкой в ​​правой части снимка экрана выше.

Есть ли способ (со стороны java) заменить этот значок стрелки текстом с надписью «Отмена» без изменения или создания каких-либо доступных ресурсов или файлов макета?


Ответы:


1

Вы не можете сделать это без пользовательского макета панели действий в Android. Чтобы установить настраиваемую панель действий, вам необходимо сделать следующее.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="64dp"
    android:background="@android:color/white">

    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_toRightOf="@+id/cancel_button"
        android:text="Contact"
        android:textColor="@android:color/black"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/cancel_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_margin="16dp"
        android:text="Cancel"
        android:textColor="@android:color/black" />
</RelativeLayout>

И установите макет на панели действий из своей деятельности, как показано ниже.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ActionBar mActionBar = getSupportActionBar();
    mActionBar.setDisplayShowHomeEnabled(false);
    mActionBar.setDisplayShowTitleEnabled(false);
    LayoutInflater mInflater = LayoutInflater.from(this);

    View mCustomView = mInflater.inflate(R.layout.custom_action_bar_layout, null);
    TextView cancelButton = (TextView) mCustomView.findViewById(R.id.cancel_button);
    cancelButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            finish();
        }
    });

    mActionBar.setCustomView(mCustomView);
    mActionBar.setDisplayShowCustomEnabled(true);
}

Надеюсь, это поможет!

01.05.2019
  • Спасибо за быстрый ответ! Я попробую и дам вам знать. 03.05.2019
  • Конечно вещь. Дайте мне знать, если возникнут проблемы. :) 03.05.2019
  • Это на самом деле сработало очень хорошо для меня. Еще раз спасибо за оперативный ответ! 06.05.2019
  • Приятно знать, что я могу помочь. Пожалуйста.. :) 06.05.2019
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..