簡體   English   中英

列表視圖項目點擊時的Android活動過渡

[英]Android activity transition on list view item click

通過listview項目單擊打開新活動時,如何隱含幻燈片等動畫過渡?

 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view,
                                int position, long id) {
            Intent intent = null;
            // global string to class
            selectedValue = String.valueOf(parent.getItemAtPosition(position));

            if (selectedValue.equals("item1")) {
                                    // ^^^  use any item value here you want
                Intent myIntent = new Intent(view.getContext(), activity1.class);
                startActivityForResult(myIntent,0);
            }

            else if (selectedValue.equals("item2")) {
                Intent myIntent = new Intent(view.getContext(), aactivity4.class);
                startActivityForResult(myIntent,0);
            }
        }
    });

santoash kumar的答案是正確的。 如果您在R.anim.layout資源上苦苦掙扎,那么在單擊listview項時,動畫代碼的工作方式就和其他聊天應用程序(幻燈片動畫)的工作方式一樣。

將它們添加到您的動畫資源中

R.anim.push_left_in

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="100%" android:toXDelta="0" android:duration="@android:integer/config_mediumAnimTime"/>
</set>

R.anim.push_left_out

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="0" android:toXDelta="-20%" android:duration="@android:integer/config_mediumAnimTime"/>
</set>

R.anim.push_right_in

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="-20%" android:toXDelta="0" android:duration="@android:integer/config_mediumAnimTime"/>
    </set>

R.anim.push_right_out

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="0" android:toXDelta="100%" android:duration="@android:integer/config_mediumAnimTime"/>
</set>

在activity1或您希望在啟動動畫時執行此動畫的任何活動中,在設置setContentView()之后添加此代碼

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out);
    //rest of your code include setContentView();
}

現在,當您嘗試通過按后退按鈕或單擊代表后退按鈕的視圖導航回到listView活動時,將會發現問題,動畫似乎仍然是默認動畫,因此當您嘗試結束自己的動畫時,請這樣做當前活動。

finish();
overridePendingTransition(R.anim.push_right_in, R.anim.push_right_out);

對於按下的后退按鈕,請使用此代碼。

@Override
    public void onBackPressed() {
        super.onBackPressed();
        overridePendingTransition(R.anim.push_right_in,R.anim.push_right_out);
    }

如果我提供的動畫與您想要的動畫不符,您可以嘗試通過該鏈接制作自己的定制動畫。

startActivityForResult(myIntent,0);
overridePendingTransition(R.anim.hold, R.anim.fade_in);

保持和淡入將是動畫xmls

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM