Кнопка в кнопке или двойная кнопка

171
20 сентября 2017, 10:36

Вот стоковый будильник. Как видно на скриншоте, есть кнопка шириной MATCH_PARENT, а вот справа есть еще одна кнопка будильника, состояние вкл\выкл. Как сделать так-же, кнопку в кнопке при динамическом добавлении из кода?

Так я добавляю кнопку, как добавить 2 кнопки на 1 область экрана?

private void addViewButton(String dateFromTimePicker) {
    //установили размеры кнопки
    LinearLayout.LayoutParams btnParam
            = new LinearLayout.LayoutParams(
            ViewGroup.LayoutParams.MATCH_PARENT, SIZE_HEIGHT_BUTTON);
    //добавили новую кнопку
    Button newClock = new Button(this);
    newClock.setText(dateFromTimePicker);
    newClock.setTextSize(SIZE_TEXT);
    selectClockView.addView(newClock, btnParam);
}

Answer 1

Чтоб "Навесить" view на view используйте RelativeLayout в место LinearLayout

<?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="match_parent">
    <Button
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="#f43324"
        android:id="@+id/btnFIRST"/>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_marginRight="7dp"
        android:layout_marginEnd="7dp" />
</RelativeLayout>

А чтоб кнопка отображалась или нет воспользуйтесь функцией

btnFIRST.setVisibility(View.VISIBLE);//видима
btnFIRST.setVisibility(View.INVISIBLE);//не видима
Answer 2

добавьте обе кнопки в один контейнер(LinearLayout).При нажатии на кнопку вкл прячьте кнопку вкл( setVisibility(btn_On.GONE)) а кнопку выкл показывайте ( setVisibility(btn_Off.VISIBLE)).Точно так же наоборот..

READ ALSO
Как выводить номер для каждого вызова метода?

Как выводить номер для каждого вызова метода?

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

207
Что означает эта строчка в логах?

Что означает эта строчка в логах?

Написал программу и собрал её релизную версию, подписал сертификатомПосле установки в логах каждую 1-2 секунды проскакивает эта строчка

170
Android: Как выводить с помощью ORM данные из базы SQLite без интернета?

Android: Как выводить с помощью ORM данные из базы SQLite без интернета?

Я использую: Retrofit 2, Active Android(ORM) и SQLiteСервер написан на Java + Spring

188
Парсинг всего текста из html

Парсинг всего текста из html

Возникла необходимость написать свой краулер on PythonНа данном этапе мне необходимо распарсить весь текст из html и удалить лишнее

161