目前我正在尝试在我的应用中实现一些我真的不知道从哪里开始的东西。 看看这个小图片:
您可以在Play商店中找到该应用:https://play.google.com/store/apps/details?id=com.imano.euro2012.row
在我的应用程序中,我有一个列表视图,当我点击一个项目时,我想在黑色活动中滑动到大约3/4。在该活动中,我想要一些特定于llistview项目的选项。
任何人都知道如何解决这个问题?
解决方案:
感谢Imran-Khan,我得到了它的工作。 但我认为这段代码并不完美。我不确定showPopup()方法前半部分的宽度和高度计算是否正确。在我的解决方案中,弹出窗口的底部和右边有一点余地。我现在不知道为什么会这样。也许有人可以帮忙...
这是我到目前为止所做的:
首先我将方法showpopup(long selectedItem)添加到我的listview:
lv_timer.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parentView, View childView, int position, long id) {
showPopup(id);
}
});
和方法本身:
private void showPopup(long selectedItem) {
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
int popupWidth = (width / 4) * 3;
int popupHeight = height;
LinearLayout viewGroup = (LinearLayout) findViewById(R.id.ll_timer_prop);
LayoutInflater layoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = layoutInflater.inflate(R.layout.timer_properties, viewGroup);
final PopupWindow popup = new PopupWindow(this);
popup.setContentView(layout);
popup.setWidth(popupWidth);
popup.setHeight(popupHeight);
popup.setFocusable(true);
popup.showAtLocation(layout, Gravity.NO_GRAVITY, width - (width / 4 * 3), 0);
TextView tv_item = (TextView) layout.findViewById(R.id.tv_item);
tv_item.setText("Clicked Item ID: " + selectedItem);
}
这对我来说很好。
对于部分幻灯片,我找到了这个帖子:PopupWindow animation not working
我添加了
popup.setAnimationStyle(R.style.AnimationPopup);
在showAtLocation()调用之前,创建了一个res / anim目录,在其中创建了两个XML文件:popup_show.xml和popup_hide.xml
popup_show.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
android:fromXScale="0.0" android:toXScale="1.0"
android:fromYScale="1.0" android:toYScale="1.0"
android:pivotX="100%" android:pivotY="0%"
android:duration="@android:integer/config_shortAnimTime"
/>
<alpha
android:interpolator="@android:anim/decelerate_interpolator"
android:fromAlpha="0.0" android:toAlpha="1.0"
android:duration="@android:integer/config_shortAnimTime"
/>
</set>
popup_hide.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
android:fromXScale="1.0" android:toXScale="0.0"
android:fromYScale="1.0" android:toYScale="1.0"
android:pivotX="100%" android:pivotY="0%"
android:duration="@android:integer/config_shortAnimTime"
/>
<alpha
android:interpolator="@android:anim/decelerate_interpolator"
android:fromAlpha="1.0" android:toAlpha="0.0"
android:duration="@android:integer/config_shortAnimTime"
/>
</set>
答案 0 :(得分:2)
答案 1 :(得分:1)
您可以使用QuickAction对于此类行为,如第三屏幕所示
修改强> 抱歉,我没有注意到你想要从右到左滑动效果,但我认为你可以尝试在Android API中自定义slidindrawer以从右向左滑动。
答案 2 :(得分:1)