2011-10-22 47 views
6

没有人知道(或者可以给我一个例子)我该如何开发一个行为就像蜂窝Gmail一样的应用程序? 如何在框架布局间切换并更改其大小以显示内容。比如当你点击你的信息,然后片段向左移动以留出信息的空间,并且包含你的信息片段消失。Honeycomb Gmail Like Application

回答

6

我觉得你难过这一切:)为你的组件提供一个布局,我会建议一个水平方向的LinearLayout。然后,您将所有三个片段添加到它,并隐藏第三个 - 包含消息。

FolderListFragment folderListFragment = new FolderListFragment(); 
MessageListFragment messageListFragment = new MessageListFragment(); 
MessageFragment messageFragment = new MessageFragment(); 

FragmentTransaction ft = getFragmentManager().beginTransaction(); 
ft.add(container_view_layout, folderListFragment); 
ft.add(container_view_layout, messageListFragment); 
ft.add(container_view_layout, messageFragment); 
ft.hide(messageFragment); 
ft.commit(); 

然后,当你想显示消息片段:

void showMessage(Message message) { 
    // Initialize messageFragment 
    messageFragment.setMessage(message); 
    FragmentTransaction ft = getFragmentManager().beginTransaction(); 
    ft.setCustomAnimations(R.anim.slide_in_right, R.anim.slide_out_left); 
    ft.hide(folderListFragment); 
    ft.show(messageFragment); 
    ft.commit(); 
} 

void showFolders() { 
    FragmentTransaction ft = getFragmentManager().beginTransaction(); 
    ft.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_right); 
    ft.hide(folderListFragment); 
    ft.show(messageFragment); 
    ft.commit(); 
} 

而对于动画的文件夹片段slide_in_left会是这样,你可以得到别人(400是组件的宽度):

<set> 
    <objectAnimator 
     android:propertyName="x" 
     android:duration="500" 
     android:valueFrom="-400" 
     android:valueTo="0" 
     android:valueType="intType"/> 
</set>