我想实现一个具有以下设计的布局:
风景: 左侧的项目清单,右侧的详细信息
人像: 项目清单,仅点击
后的详细信息为了实现这一点,我遵循了这些教程: Tutorial 1 Tutorial 2
它按预期工作。
但是,不是在纵向和点击Listitem时开始新的活动, 我希望片段被细节替换,这样我就可以设置过渡动画。
所以我玩了一遍并且对这些观点产生了疑问。之后我阅读了以下文章,并修改了我的布局以使用占位符以编程方式添加片段: Article
单击listitem时触发的操作只是用详细信息片段替换容器中的列表片段。
但是现在如果我恢复到横向,布局的列表部分将显示详细信息而不是列表,因为我替换了内容。
有什么方法可以解决这个问题吗?
目前,我设法通过在布局,横向和纵向两个片段占位符,包装内容,隐藏和显示片段来实现这一点,但我不知道这是否是正确的方法?也许ViewFlipper会更好?
此处的动画也无法正常工作,因为我隐藏并显示在同一个交易中。
此外,如果我处于横向模式并单击列表项并显示数据,并且我返回纵向,我希望显示数据视图,而不是列表,但只有数据已经显示。
Atm我通过传递给意图数据的标志来管理它,并再次显示/隐藏正确的视图。
任何其他想法?
非常感谢,现在已经尝试了几个小时!
修改 我遇到的主要问题是,我设置的幻灯片输入/输出动画播放不正确,因为我隐藏并在一个事务中显示片段。它只是隐藏了一个片段并在另一个片段中滑动,因此第一个片段没有滑出:/
要了解我的意思,以下是我在片段测试应用中实现的方法:
main.xml中:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal">
<FrameLayout
android:id="@+id/details_Fragment_Placeholder"
android:layout_width="wrap_content"
android:layout_height="fill_parent" >
</FrameLayout>
<FrameLayout
android:id="@+id/main_Fragment_Placeholder"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</FrameLayout>
</LinearLayout>
ListFragment onListItemClick:
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
FragmentManager fragmentManager = getFragmentManager();
Screen2Fragment fragment2 = (Screen2Fragment) fragmentManager
.findFragmentByTag(Screen2Fragment.TAG);
if (fragment != null) {
if ((getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT)) {
.beginTransaction();
transaction.setCustomAnimations(R.anim.slide_in_right,
R.anim.slide_out_left, android.R.anim.slide_in_left,
android.R.anim.slide_out_right);
Screen1ListFragment fragment1 = (Screen1ListFragment) fragmentManager
.findFragmentByTag(Screen1ListFragment.TAG);
transaction.hide(fragment1);
transaction.show(fragment2);
transaction.addToBackStack("ReturnToScreen1");
transaction.commit();
}
}
}
答案 0 :(得分:0)
当您最初放置列表片段时,需要将其放入后台堆栈,然后覆盖详细信息片段中的后退按钮,以便在按下时从后台堆栈中弹出列表视图。