Ниже мой код Я просмотрел переполнение стека и написал код для моего всплывающего диалогового окна, в котором есть 2 EditText, мне нужно всплывать на моем SoftKeypad предупреждение, то, что он делает, появляется на клавиатуре, когда я нажимаю edittext, но клавиатура находится за моим предупреждающим ящиком.Keyboard Pop up Code работает, но клавиатура стоит за полем оповещения - Android
Итак, я попытался использовать всплывающее окно с принудительной клавиатурой чуть ниже alert.show(), которое он делает, но в фоновом режиме и оповещения идет над ним.
Пожалуйста, получая раствор
Код:
for (int k = 0; k < mCompetitorMainList.getChildCount(); k++)
{
LinearLayout layout = (LinearLayout) mCompetitorMainList.getChildAt(k);
Button btn = (Button) layout.getChildAt(0);
String tag = (String) btn.getTag();
LinearLayout dataDetail = (LinearLayout) layout.getChildAt(2);
if (tag.equalsIgnoreCase("yes") && btn.getText().toString().equals("OTHERS"))
{
final AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(getContext());
LayoutInflater inflater = getActivity().getLayoutInflater();
final View dialogView = inflater.inflate(R.layout.alert_other_competitor_item_detail, null);
ImageView addImg =(ImageView)dialogView.findViewById(R.id.addCompetitorImg);
ImageView removeImg = (ImageView)dialogView.findViewById(R.id.removeCompetitorImg);
final LinearLayout competitorOtherLayout = (LinearLayout)dialogView.findViewById(R.id.competitorLayout);
addImg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LayoutInflater inflaterLayout = getActivity().getLayoutInflater();
View dialogViewLayout = inflaterLayout.inflate(R.layout.add_other_item_layout, null);
EditText otherCompDesc = (EditText) dialogViewLayout.findViewById(R.id.otherCompetitorDescription);
EditText otherCompQty = (EditText) dialogViewLayout.findViewById(R.id.otherCompetitorQty);
otherCompDesc.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
InputMethodManager imm = (InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
}
}
});
otherCompQty.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
InputMethodManager imm = (InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
}
}
});
competitorOtherLayout.addView(dialogViewLayout);
}
});
removeImg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(competitorOtherLayout.getChildCount()!=0)
{
competitorOtherLayout.removeViewAt(competitorOtherLayout.getChildCount()-1);
}
else
{
Toast.makeText(getActivity(),"No Other Competitor Present ",Toast.LENGTH_LONG).show();
}
}
});
dialogBuilder.setView(dialogView);
alertDialogOther = dialogBuilder.create();
alertDialogOther.getWindow().setFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM, WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
alertDialogOther.show();
//alertDialogOther.setCancelable(false);
Toast.makeText(getActivity(), "Others Clicked", Toast.LENGTH_SHORT).show();
btn.setTag("no");
}
else if (tag.equalsIgnoreCase("yes"))
{
dataDetail.setVisibility(View.VISIBLE);
btn.setTag("no");
}
else
{
dataDetail.setVisibility(View.GONE);
}
}
SCREENSHOT:
я получаю клавиатуры, но его за поле предупреждения, как мне принести, если на фронте, я использую фрагмент, – Yatin
вы попробовали это: alertDialogOther.getWindow(). setFlags (WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM, WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM); –
Нет. не работал – Yatin