-1

Во-первых, у меня есть несколько EditTexts в Framelayout, который завернут ScollView.ScrollView прокручивается при вводе

Я уже использую ниже код, чтобы ScrollView прокрутки вверх, когда клавиатура отображается -

((Activity) getContext()).getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); 

Кроме того, я попытался ADJUST_PAN в коде выше и ничего не изменилось.

В этом случае - когда I печатает в одном из этих EditTexts, ScrollView автоматически прокручивается, что приводит к моему текущему редактированию EditText невидимым.

Мне интересно, почему это произошло? Мое текущее редактирование EditText потеряло фокус при наборе текста на клавиатуре? И как мне это исправить?

Кстати, я не использовал xml для макета. Все макеты написаны на Java.

Основная раскладка -

public class PoorEditScroll extends ScrollView { 
PoorEdit poorEdit; 
public PoorEditScroll(Context context) { 
    super(context); 
    initUI(); 
} 

public PoorEditScroll(Context context, AttributeSet attrs) { 
    super(context, attrs); 
    initUI(); 
} 
private void initUI(){ 
    setScrollContainer(false); 
    poorEdit = new PoorEdit(getContext()); 
    this.addView(poorEdit); 
} 
     this.addView(poorEdit); 
} 

public void toJson(String s) { 
    poorEdit.toJson(s); 
} 

public void loadJson(String s) { 
    poorEdit.loadJson(s); 
} 


class PoorEdit extends LinearLayout { 
    private EditView editView; 
    public PoorEdit(Context context) { 
     super(context); 
     initUI(); 
    } 

    public PoorEdit(Context context, AttributeSet attrs) { 
     super(context, attrs); 
     initUI(); 
    } 

    private void initUI(){ 
     this.setOrientation(VERTICAL); 
     LayoutParams layoutParams = new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); 
     this.setLayoutParams(layoutParams); 
     DisplayMetrics dm = getContext().getResources().getSystem().getDisplayMetrics(); 
     this.setMinimumHeight(dm.heightPixels); 
     // TODO: 15/11/25 Override OnMeasure in EditView 
     editView = new EditView(getContext()); 
     this.addView(editView); 
     ((Activity) getContext()).getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); 
    } 

    public void loadJson(String folderPath){ 
     editView.loadJson(folderPath); 
    } 

    public String toJson(String dest){ 
     return editView.toJson(dest); 
    } 
} 

И EditView это -

public class EditView extends FrameLayout implements View.OnDragListener { 
public static BaseContainer poorBoy; 
private BaseContainer lastAdd = null; 
public EditView(Context context) { 
    super(context); 
    initUI(); 
} 

public EditView(Context context, AttributeSet attrs) { 
    super(context, attrs); 
    initUI(); 
} 

private void initUI(){ 
    this.setOnDragListener(this); 
    LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 0, 1); 
    this.setLayoutParams(layoutParams); 
    //Call addView to add a EditText in this function. 
    addTextOn(0, 0, Constants.eleWidth, Constants.eleHeight); 
} 
} 

ответ

1

Добавьте этот код внутри вашего <activity> в AndroidManifest.xml

android:windowSoftInputMode="adjustResize|stateHidden" 
+0

Не работает ... Я Вы уже пытались настроитьResize и adjustPan. Вид редактирования отображается, когда отображается клавиатура, но при наборе текста на клавиатуре прокрутка просматривается и охватывает мое редактируемое представление. Спасибо за ответ в любом случае. – Bob

+0

вставьте свой XML-код, поэтому я могу проверить его. –

+0

Пожалуйста, проверьте мой отредактированный вопрос. Благодарю. – Bob

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