我在嘗試複製Facebook應用程序的新菜單滑塊。創建從左側進入的滑塊很簡單。不過,Facebook應用會採用活動的佈局並將其向右滑動,其左側邊緣的一小部分仍顯示在屏幕的右側。我對如何做到這一點有些困惑。有沒有人有任何想法?屏幕外的偏移活動佈局
我能想到的,我沒有嘗試過的最好的事情是使用Display類來確定屏幕的寬度,將最外側視圖的寬度設置爲該寬度並將其顯示在右側滑塊(顯然由一個RelativeView包裝)。
更新:我試過以下。
我最外面的View是一個RelativeLayout。在這個RelativeLayout中有兩個兄弟視圖。它們都是LinearLayouts。第一個是包含側欄的佈局(在我的XML中,這是通過包含來完成的)。第二個位於頂部的佈局包含Activity的主體(屏幕,因爲我希望用戶通常可以看到它)。
這裏是我的XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/black" >
<include
android:id="@+id/mainnew_slider"
layout="@layout/layout_slidermenu" />
<LinearLayout
android:id="@+id/mainfeed_mainlayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/loginbg"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="64dip"
android:background="@drawable/titlebar_background"
android:orientation="vertical"
android:padding="4dip" >
<ImageButton
android:id="@+id/mainfeed_slider"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/selector_titlebar_button"
android:src="@drawable/sidebarico" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="1dip"
android:background="@color/store_toolbar_bottom_border" />
</LinearLayout>
</RelativeLayout>
當用戶單擊ImageButton的,我使用了一些動畫代碼,使主要佈局向右移動。我用動畫主要佈局的代碼是:
AnimationSet set = new AnimationSet(true);
Animation animation = new TranslateAnimation(
Animation.RELATIVE_TO_PARENT, 0.0f,Animation.RELATIVE_TO_PARENT, 1.0f,
Animation.RELATIVE_TO_PARENT, 0.0f,Animation.RELATIVE_TO_PARENT, 0.0f
);
animation.setDuration(1000);
set.addAnimation(animation);
LayoutAnimationController controller = new LayoutAnimationController(set, 0.0f);
LinearLayout main = (LinearLayout) findViewById(R.id.mainfeed_mainlayout);
main.setLayoutAnimation(controller);
當我點擊滑塊按鈕,主要佈局向右滑動的兩個孩子,但不是主要的佈局本身(其背景保持靜態)。動畫完成後,所有內容都會恢復到原始位置。
我不明白爲什麼它沒有移動整個主佈局並將其保持在其休息的地方。
我還是有點迷路。我有一個包含兩個LinearLayout子項的RelativeLayout。其中一個孩子是我的滑塊。另一個是我的主要佈局。我已經將主佈局上的layout_toRightOf設置爲滑塊的ID。該應用只是崩潰。如果我刪除layout_toRightOf,TranslateAnimation會將滑塊帶入視圖中,但主佈局不會像我期望的那樣從屏幕右側推出。 – Andrew 2011-12-13 20:09:21