Всплывающее окно для отображения некоторых фрагментов

android android-fragments popup

34839 просмотра

1 ответ

Я пытаюсь сделать что-то вроде всплывающего окна, которое будет отображаться при нажатии на вид во фрагменте. Я хочу, чтобы это всплывающее окно или что-то еще не делало фрагмент темным, как это делает фрагмент диалога. И я также хочу, чтобы всплывающее окно было расположено там, где щелкает вид. Было бы хорошо, если бы у него была своя активность и макет, чтобы я мог вносить в него некоторые пользовательские изменения. Можете ли вы показать мне пример кода?

Автор: Sartheris Stormhammer Источник Размещён: 12.11.2019 09:09

Ответы (1)


47 плюса

Решение

Следующее должно работать идеально в соответствии с вашей спецификацией. Вызов этого метода из внутренней onClick(View v)части OnClickListenerназначен Вид:

public void showPopup(View anchorView) {

    View popupView = getLayoutInflater().inflate(R.layout.popup_layout, null);

    PopupWindow popupWindow = new PopupWindow(popupView, 
                           LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

    // Example: If you have a TextView inside `popup_layout.xml`    
    TextView tv = (TextView) popupView.findViewById(R.id.tv);

    tv.setText(....);

    // Initialize more widgets from `popup_layout.xml`
    ....
    ....

    // If the PopupWindow should be focusable
    popupWindow.setFocusable(true);

    // If you need the PopupWindow to dismiss when when touched outside 
    popupWindow.setBackgroundDrawable(new ColorDrawable());

    int location[] = new int[2];

    // Get the View's(the one that was clicked in the Fragment) location
    anchorView.getLocationOnScreen(location);

    // Using location, the PopupWindow will be displayed right under anchorView
    popupWindow.showAtLocation(anchorView, Gravity.NO_GRAVITY, 
                                     location[0], location[1] + anchorView.getHeight());

}

Комментарии должны объяснить это достаточно хорошо. anchorViewэто vот onClick(View v).

Автор: Vikram Размещён: 27.08.2013 09:56
Вопросы из категории :
32x32