How to create a comment on facebook as a popup in Android?

I would like to create a popup, for example a facebook android application that opens when you click the comment button. I want to create the same popup for my application. Can someone let me know how this can be built or just tell me what is the requirement for developing this kind of thing.

Thanks.

+5
source share
1 answer

you can achieve this through

Popupwindow

Here's the procedure for calling a popup over an activity or fragment. Facebook uses the Rebound Library for awesome swing animations. But for this I used regular xml animation files.

popup_layout.xml

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:id="@+id/headerLayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="?attr/actionBarSize" android:orientation="horizontal" android:layout_alignParentTop="true" android:gravity="center"> <TextView android:layout_gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Some One and 20 Others Like this" android:textColor="@color/black" android:textStyle="bold" android:layout_margin="5dp"/> </LinearLayout> <ListView android:id="@+id/commentsListView" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@id/headerLayout" android:layout_above="@+id/comment_section" android:layout_marginBottom="0dp"/> <LinearLayout android:id="@+id/comment_section" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="50dp" android:layout_alignParentBottom="true" android:layout_marginBottom="5dp" android:orientation="horizontal" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:gravity="center" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxHeight="30dp" android:minHeight="20dp" android:layout_gravity="center" android:src="@mipmap/ic_launcher" /> <EditText android:id="@+id/writeComment" android:hint="Write a Comment" android:layout_width="match_parent" android:layout_height="match_parent" android:maxLines="2" android:focusable="true" android:layout_marginLeft="2dp" android:textSize="12sp" android:textColor="@color/black" android:background="#00000000"/> </LinearLayout> </RelativeLayout> 

.xml popup animation

  <!-- PopuP Enter Exit Animation --> <style name="PopupAnimation" parent="Widget.AppCompat.PopupWindow"> <item name="android:windowEnterAnimation">@anim/bottom_up</item> <item name="android:windowExitAnimation">@anim/bottom_down</item> </style> 

Java method to call PopUpWindow

 // call this method when required to show popup public void onShowPopup(View v){ LayoutInflater layoutInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); // inflate the custom popup layout inflatedView = layoutInflater.inflate(R.layout.popup_layout, null,false); // find the ListView in the popup layout ListView listView = (ListView)inflatedView.findViewById(R.id.commentsListView); LinearLayout headerView = (LinearLayout)inflatedView.findViewById(R.id.headerLayout); // get device size Display display = getWindowManager().getDefaultDisplay(); final Point size = new Point(); display.getSize(size); // mDeviceHeight = size.y; DisplayMetrics displayMetrics = mContext.getResources().getDisplayMetrics(); int width = displayMetrics.widthPixels; int height = displayMetrics.heightPixels; // fill the data to the list items setSimpleList(listView); // set height depends on the device size popWindow = new PopupWindow(inflatedView, width,height-50, true ); // set a background drawable with rounders corners popWindow.setBackgroundDrawable(getResources().getDrawable(R.drawable.popup_bg)); popWindow.setInputMethodMode(PopupWindow.INPUT_METHOD_NEEDED); popWindow.setHeight(WindowManager.LayoutParams.WRAP_CONTENT); popWindow.setAnimationStyle(R.style.PopupAnimation); // show the popup at bottom of the screen and set some margin at bottom ie, popWindow.showAtLocation(v, Gravity.BOTTOM, 0,100); } 

How to add a list to the layout

  void setSimpleList(ListView listView){ ArrayList<String> contactsList = new ArrayList<String>(); for (int index = 0; index < 10; index++) { contactsList.add("I am @ index " + index + " today " + Calendar.getInstance().getTime().toString()); } listView.setAdapter(new ArrayAdapter<String>(MainActivity.this, R.layout.popup_list_item, android.R.id.text1, contactsList)); } 

Animation file bottom_up.xml

 <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromYDelta="75%p" android:toYDelta="0%p" android:fillAfter="true" android:duration="400"/> </set> 

bottom_down.xml

 <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromYDelta="0%p" android:toYDelta="100%p" android:fillAfter="true" android:interpolator="@android:anim/linear_interpolator" android:duration="400" /> </set> 
+8
source

Source: https://habr.com/ru/post/1206390/


All Articles