2012-06-23 77 views
3

目前我正試圖在我的應用程序中實現某些功能,我真的不知道從哪裏開始。 看一看這個小圖片:Slide in(over)activity

enter image description here

您可以在Play商店這裏的應用:https://play.google.com/store/apps/details?id=com.imano.euro2012.row

在我的應用程序,我有一個列表視圖,當我在一個項目挖掘我想在黑色活動中滑動至3/4左右。在那個活動中,我想要有一些llistview項目特定的選項。

任何人都知道如何解決這個問題?

解決方案:

由於伊姆蘭 - 汗我得到它的工作。 但我認爲這段代碼並不完美。我不確定showPopup()方法前半部分的寬度和高度計算是否正確。在我的解決方案中,彈出窗口在底部和右側有一點餘量。我現在不知道爲什麼會發生這種情況。也許有人可以幫助...

這裏是我做過什麼至今:

首先,我添加的方法showpopup(長將selectedItem)到我的列表視圖:

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 /阿尼姆目錄中創建兩個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> 
+1

+1爲酷手寫/繪圖 – WarrenFaith

+0

LOL ...謝謝你! – Oliver

回答

2

您可以使用自定義創建這種觀點PopupWindow

請參見本教程爲創建自定義PopupWindow

How to create popups in Android

+0

看到這個例子http://androidresearch.wordpress.com/ –

+0

我會看看這個。稍微調整一下,我認爲這可以奏效...謝謝! – Oliver

1

可以使用QuickAction對於這樣的行爲,就像第三屏幕上顯示

編輯 對不起,我沒有爲您要從右向左滑動的事實關注效果,但我認爲你可以嘗試在Android API中自定義slidingindrawer,使其從右向左滑動。

+0

我知道quickactions,但那不是我想要的 – Oliver

1

好笑的是,我居然在看同樣的問題現在。

我發現這個話題: Android Facebook style slide

在有一些很好的例子。

+0

我也試過,實際上它工作。但不是我想要的。當我嘗試imran khans PopupWindow時會給你反饋... – Oliver