Honeycomb Gmail Like Application

时间:2011-10-22 05:52:23

标签: android gmail android-3.0-honeycomb fragment

有谁知道(或者可以告诉我一个例子)我如何开发一个行为就像蜂窝gmail一样的应用程序? 如何在帧布局之间切换并更改其大小以显示内容。比如当你点击你的消息然后片段向左浮动以为消息腾出空间时,包含你盒子的se片段就会消失。

1 个答案:

答案 0 :(得分: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>