Facebook-esque Popup How-to? - PullRequest
       31

Facebook-esque Popup How-to?

4 голосов
/ 04 января 2012

Приложение Facebook Android имеет очень крутой, я могу только предположить, PopupWindow ().Я действительно, очень борюсь с макетами.Любая идея, как они реализовали popup.xml?

Я пытался вложить пару LinearLayouts.Их граница выглядит как 9-патч.Это вообще возможно?

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/outerLinear"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:background="@drawable/darkGrey" >

        <TextView
            android:id="@+id/groupTitle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="some text" />
    <LinearLayout
        android:id="@+id/innerLinear"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:background="@drawable/white"
        android:orientation="vertical" >

        <ListView
            android:id="@+id/listView1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >
        </ListView>

    </LinearLayout>

</LinearLayout>

Facebook Friend Requests Popup

Ответы [ 3 ]

1 голос
/ 04 января 2012

У вас есть вопрос по Android, когда вы приводите пример с iOS.Приложение Facebook использует родное представление iOS, вы можете сделать нечто подобное, используя веб-представление с Bootstrap из Twitter .

Взгляните на их Popovers .

0 голосов
/ 22 августа 2012

Я реализовал это, задав фону xml списка изображение из 9 патчей и включив его в основной xml, где это было необходимо, а затем после заполнения списка я переключал видимость при необходимости ... Также переопределял onbackpress для того, чтобы сделать список исчезнувшим, если он был виден, и не выходить из приложения ...

0 голосов
/ 15 января 2012

Я пытаюсь сделать то же самое, и я думаю, что смог изменить это. Первой задачей было определить, какой объект они использовали (я думаю, что это пользовательский диалог). Хорошо, тогда просто поэкспериментируйте с позиционированием и другими аспектами и стучите. Я не уверен насчет аспекта с 9 патчами, но начните с настраиваемого диалога с вашим макетом и затем настройте следующие параметры

//create your dialog
Dialog popup = new Dialog(this);
//remove title bar
popup.requestWindowFeature(Window.FEATURE_NO_TITLE);
//set the layout resource
popup.setContentView(R.layout.custom_dialog);
//can be canceled
popup.setCancelable(true);
//touch outside of dialogue cancels
popup.setCanceledOnTouchOutside(true);
//set background to transparent instead of normal black
popup.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
//grab the layout params
WindowManager.LayoutParams lp = popup.getWindow().getAttributes();
//move the popup to desired location
lp.y -= 160/lp.height;
lp.x -= 70/lp.width;
//remove the dim effect
lp.dimAmount = 0;
//set new params
popup.getWindow().setAttributes(lp);
//show the custom dialog
popup.show();
...