【发布时间】:2011-10-22 05:52:22
【问题描述】:
有谁知道(或可以给我举个例子)我如何开发一个行为就像蜂窝 gmail 的应用程序? 如何在框架布局之间切换并更改其大小以显示内容。就像当你点击你的消息然后片段向左浮动为消息腾出空间时,包含你的框的se片段消失了。
【问题讨论】:
标签: android gmail android-3.0-honeycomb fragment
有谁知道(或可以给我举个例子)我如何开发一个行为就像蜂窝 gmail 的应用程序? 如何在框架布局之间切换并更改其大小以显示内容。就像当你点击你的消息然后片段向左浮动为消息腾出空间时,包含你的框的se片段消失了。
【问题讨论】:
标签: android gmail android-3.0-honeycomb fragment
我觉得你很难过 :) 为你的组件提供一个布局,我建议使用水平方向的 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>
【讨论】: