Ich habe einen Überlaufknopf innerhalb einer CardView
in Recyclerview
. Immer wenn ich auf die Schaltfläche klicke, blicke ich ein Popup-Menü auf, aber auch RecyclerView
scrollt einen Punkt nach unten. Kann mir bitte jemand helfen, dieses unerwünschte Scrollen zu stoppen?PopupMenu Klick verursacht RecyclerView zum Scrollen
Im Grunde versuche ich, das gleiche Überlauf-Button-Verhalten wie in Playstore zu replizieren.
Layout:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="5dp">
<android.support.v7.widget.CardView
android:id="@+id/cv_tracks"
android:layout_width="match_parent"
android:layout_height="65dp"
>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="60dp">
<ImageView
android:id="@+id/ivTracks"
android:layout_width="60dp"
android:layout_height="60dp"
android:background="@drawable/unknown"
/>
<Button
android:id="@+id/imgbtn_overflow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:drawableTop="@drawable/ic_overflow"
android:paddingLeft="25dp"
android:paddingRight="20dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
</RelativeLayout>
</android.support.v7.widget.CardView>
</RelativeLayout>
Adapter:
@Override
public void onBindViewHolder(final TracksViewHolder tracksViewHolder, int i) {
tracksViewHolder.imgBtnOverflow.setTag(i);
tracksViewHolder.imgBtnOverflow.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Creating the instance of PopupMenu
final int position = (Integer) v.getTag();
PopupMenu popup = new PopupMenu(mContext,tracksViewHolder.imgBtnOverflow);
//Inflating the Popup using xml file
popup.getMenuInflater()
.inflate(R.menu.popup_menu_overflow, popup.getMenu());
//registering popup with OnMenuItemClickListener
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
if(mPopUpClick!=null)
mPopUpClick.actionOnPopUpItemClick(position,item,songs.get(position));
return true;
}
});
popup.show(); //showing popup menu
}
});
}
UPDATE: Haben Sie das Problem .Wenn das Popup-Menü angezeigt wird, wird die Liste nach unten gleitet, um die gesamte Dropdown angezeigt werden soll. Wie wird das Popup so angepasst, dass es je nach verfügbarem Platz angezeigt wird?
Das gleiche für mich, mit android.widget.PopupMenu funktioniert so weit. – Chris