2013-05-03 4 views
0

Эта проблема, которую я собираюсь представить, произойдет только в Android 4.0 +
У меня есть LinearLayout с 4 TableLayout, это родительский элемент ScrollView. Динамически добавляю TableRows в каждый TableLayout.Убедитесь, что EditText находится в видимом положении на экране

Мои таблицы выглядят следующим образом.

<TableRow xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/tableRow1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/borda" 
    android:layout_margin="10dip" 
    android:paddingLeft="10dip" 
    > 
    <LinearLayout 
    android:id="@+id/l1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:layout_marginTop="15dip" 
    android:layout_marginBottom="15dip" 
    > 

    <TextView 
     android:id="@+id/label" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/nome" 
     android:textStyle="bold" 
     android:textColor="#526691" 
     android:textSize="15sp" 
     android:paddingLeft="10dip" 
     android:paddingRight="5dip" 
     /> 


     <EditText 
     android:id="@+id/valorLabel" 
     android:layout_width="140dip" 
     android:layout_height="wrap_content" 
     android:textSize="15sp" 
     android:background="#ffffffff" 
     android:singleLine="true" 
     android:inputType="textCapSentences" 
     android:textColor="#777777" />   


</LinearLayout> 

</TableRow> 

Кажется, что проблема связана с тем, что сфокусированный EditText прокручивается вне экрана.

Вопрос Как я могу знать, если EditText виден на экране? Есть ли способ удалить фокус в EditText, если его родительский прокручивается?

Второй вопрос
Почему фон моего TableRow в получить белый, когда EditText ориентирован?

+0

Чтобы ответить на ваш первый вопрос 'yourEditText.getVisibility() == View.VISIBLE)' будет 'возвращать true', если это' Visible'. В чем проблема, которую вы даете? – codeMagic

+0

http://stackoverflow.com/questions/16293230/android-form-with-edittext-makes-the-screen-flash ... Это моя настоящая проблема. Я попробую это решение. –

ответ

1

здесь является ответом на первый вопрос: Android: how to check if a View inside of ScrollView is visible?

второй один, вы можете установить OnTouchListener на родительском представлении. При прокрутке изменяется значение x или y, а затем clearFocus() в EditText. Вот хорошая ссылка, проверьте касания Event Listener часть: http://www.techotopia.com/index.php/Android_Touch_and_Multi-touch_Event_Handling

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

+0

На самом деле есть много EditText, ни один из них не может быть сфокусирован за пределами экрана, иначе экран будет мигать (мигать). Ваше решение работало по частям. Я очищаю фокус всего EditText, но иногда это все еще проблескивает. И когда EditText сфокусирован, фон TableRow становится белым. @tjPark –

Смежные вопросы