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