Я не могу добавить 5-й столбец в мой код

Как объяснил Xavi , для этого нет 100% -ного кросс-браузера, поэтому я создал трюк самостоятельно (5 шагов для продолжения): 1. Мне нужна пара новых массивов:

window.timeouts     = new Array();
window.memo_values  = new Array();

2. в фокусе ввода текста, который я хочу вызвать (в вашем случае «электронная почта», в моем примере «имя») я установил интервал, например, используя jQuery (не требуется мысль):

jQuery('#name').focus(function ()
{
    var id = jQuery(this).attr('id');
    window.timeouts[id] = setInterval('onChangeValue.call(document.getElementById("'+ id +'"), doSomething)', 500);
});

3. на размытии я удаляю интервал: (всегда с использованием jQuery не требуется мысль), и я проверяю, изменилось ли значение

jQuery('#name').blur(function ()
{
    var id = jQuery(this).attr('id');
    onChangeValue.call(document.getElementById(id), doSomething);
    clearInterval(window.timeouts[id]);
    delete window.timeouts[id];
});

4. Теперь основная функция, которая проверяет изменения, следующая

function onChangeValue(callback)
{
    if (window.memo_values[this.id] != this.value)
    {
        window.memo_values[this.id] = this.value;

        if (callback instanceof Function)
        {
            callback.call(this);
        }
        else
        {
            eval( callback );
        }
    }
}

Важное примечание: вы можете использовать «это» внутри указанной функции, ссылаясь на ваш инициированный входной элемент HTML. Для работы этой функции должен быть указан идентификатор, и вы можете передать функцию или имя функции или строку команды в качестве обратного вызова.

5. Наконец вы можете что-то сделать, когда вход значение изменяется, даже если значение выбрано из раскрывающегося списка автозаполнения

function doSomething()
{
    alert('got you! '+this.value);
}

Важное примечание: снова вы используете «это» внутри указанной функции, ссылаясь на ваш инициированный входной элемент HTML. РАБОЧИЙ ФИДДЛ !!! Я знаю, что это звучит сложно, но это не так. Я подготовил рабочую скрипту для вас, вход для изменения называется «имя», поэтому, если вы когда-либо вводили свое имя в онлайн-форме, у вас может быть раскрывающийся список автозаполнения вашего браузера для тестирования.

0
задан Suraj Kumar 20 March 2019 в 04:39
поделиться

1 ответ

Простое удаление android:layout_columnWeight="1" и android:layout_rowWeight="1" решит проблему.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:tools="http://schemas.android.com/tools"
                android:layout_height="fill_parent"
                android:layout_width="fill_parent"
                android:orientation="vertical"
                xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_weight="100">
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:id="@+id/reletive"  >
        <TextView
            android:id="@+id/output"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="30sp"
            android:text="Hello World!"
            android:gravity="end" />
        <TextView
            android:id="@+id/input"
            android:layout_below="@+id/output"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="30sp"
            android:text="Hello World!"
            android:gravity="end"/>
    </RelativeLayout>
    <GridLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/grid"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        tools:ignore="InvalidId"
        android:layout_below="@+id/reletive"
        android:numColumns="5">

        <Button
            android:layout_row="0"
            android:layout_column="0"
            android:text="1"/>
        <Button
            android:layout_row="0"
            android:layout_column="1"
            android:text="1"/>
        <Button
            android:layout_row="0"
            android:layout_column="2"
            android:text="1"/>
        <Button
            android:layout_row="0"
            android:layout_column="3"
            android:text="1"/>
        <Button
            android:layout_row="0"
            android:layout_column="4"
            android:text="1"/>
        <Button
            android:layout_row="1"
            android:layout_column="0"
            android:text="1"/>
        <Button
            android:layout_row="1"
            android:layout_column="1"
            android:text="1"/>
        <Button
            android:layout_row="1"
            android:layout_column="2"
            android:text="1"/>
        <Button
            android:layout_row="1"
            android:layout_column="3"
            android:text="1"/>
        <Button
            android:layout_row="1"
            android:layout_column="4"
            android:text="1"/>
    </GridLayout>
</RelativeLayout>
0
ответ дан noahutz 20 March 2019 в 04:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: