2016-01-01 2 views
0

Я хочу создать всплывающее окно во фрагменте. Всплывающее окно будет создано на нажатой кнопке и уничтожено при нажатии кнопки. Это код, который у меня есть в настоящее время, но окно не отображается или его не видно.Создать всплывающее нажатие кнопки

Внутри класса фрагмента:

Это метод OnTouchListener для кнопки

Button button2 = (Button) view.findViewById(R.id.res_weak_button); 
    button2.setOnTouchListener(
      new View.OnTouchListener() { 
       @Override 
       public boolean onTouch(View v, MotionEvent event) { 
        if (event.getAction() == MotionEvent.ACTION_DOWN) { 
         Log.w("PokeApp", "DOWN"); 
         createPopupVisuals(); 
         return true; 
        } else if (event.getAction() == MotionEvent.ACTION_UP) { 
         Log.w("PokeApp", "UP"); 
         popupMessage.dismiss(); 
         return true; 
        } 
        return false; 
       } 
      } 
    ); 

Это метод для создания всплывающего окна

private void createPopupVisuals(){ 

    RelativeLayout layout = new RelativeLayout(getActivity()); 
    TextView resist = new TextView(getActivity()); 
    resist.setText("Pokemon is resistant to:"); 
    TextView weakness = new TextView(getActivity()); 
    weakness.setText("Pokemon is weak against:"); 

    RelativeLayout.LayoutParams resistParams = new RelativeLayout.LayoutParams(
      RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT 
    ); 
    RelativeLayout.LayoutParams weaknessParams = new RelativeLayout.LayoutParams(
      RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT 
    ); 
    weaknessParams.addRule(RelativeLayout.BELOW, resist.getId()); 
    weaknessParams.setMargins(0,40,0,0); 

    resist.setLayoutParams(resistParams); 
    weakness.setLayoutParams(weaknessParams); 

    layout.addView(resist); 
    layout.addView(weakness); 

    //TODO: Get types 

    popupMessage = new PopupWindow(layout, RelativeLayout.LayoutParams.MATCH_PARENT, 
      RelativeLayout.LayoutParams.WRAP_CONTENT); 
    popupMessage.setContentView(layout); 
    Log.w("PokeApp", "Should have created layout"); 
} 
+0

пожалуйста, вы можете сделать, как всплывающее окно должно выглядеть? Любые изображения, оцененные – piotrek1543

+0

, на самом деле не имеют значения, как это выглядит. только больше беспокоит его, показывая в данный момент – chiangy77

+0

На первом щелчке нажмите alertdialog, на втором скрыть. Возможно, это было бы хорошо: http: //stackoverflow.com/questions/17994238/android-dialog-box-without-buttons – piotrek1543

ответ

0

Я просто забыл добавить эту строку внизу.

popupMessage.showAsDropDown(aButton, 0, 0); 

Он теперь работает отлично

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