首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用片段重现Honeycomb GMail UI

使用片段重现Honeycomb GMail UI
EN

Stack Overflow用户
提问于 2011-04-28 07:30:25
回答 3查看 2.5K关注 0票数 7

我正在尝试复制带有碎片的Honeycomb GMail UI,但做不到。

初始状态:

代码语言:javascript
运行
复制
+--------+---------------+
|        |               |
|Accounts|   Folders     |
|        |               |
+--------+---------------+

选择文件夹后:

代码语言:javascript
运行
复制
+--------+---------------+
|        |               |
|Folders |   Items       |
|        |               |
+--------+---------------+

其中帐户、文件夹和项目是片段。(很明显后退按钮应该转到初始状态)

我尝试了以下布局:

代码语言:javascript
运行
复制
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:orientation="horizontal" 
   android:id="@+id/root">

   <FrameLayout
     android:id="@+id/left_pane" android:layout_weight="1"
     android:layout_width="0px" android:layout_height="match_parent" />

   <FrameLayout
      android:id="@+id/right_pane" android:layout_weight="1.6"
      android:layout_width="0px" android:layout_height="match_parent" />
</LinearLayout>

不幸的是,这不起作用,因为我不能将我的文件夹片段从右窗格移到左窗格(片段只能添加一次)。我可以创建新的文件夹,但这相当浪费资源,需要仔细的状态管理(特别是当后退按钮将被按下时),并且看起来不是我想要的样子。

我试着使用3个FrameLayouts (左,中,右,权重为1,1.6,2.56),但是当FrameLayout没有显示时,我不能让它折叠。任何帮助都是非常感谢的

EN

回答 3

Stack Overflow用户

发布于 2011-06-09 22:32:32

按照Nicholas的帖子的建议,使用三帧布局在我的应用程序中工作得很好。为了保持正确的比例,您可能需要动态更改布局权重(尽管我认为可以不这样做)。我使用这个辅助方法来处理所有这些逻辑。

代码语言:javascript
运行
复制
    final private void showFrames(View leftFrame, View rightFrame) {
    // Hide frames that should be gone
    for (View frame : mContentFrames) {
        if (frame != leftFrame && frame != rightFrame) {
            frame.setVisibility(View.GONE);
            Fragment frag = getFragmentManager().findFragmentById(frame.getId());
            if (frag != null) {
                getFragmentTransaction().remove(frag);
            }
        }
    }

    // Set up the left frame
    if (leftFrame != null) {
        leftFrame.setVisibility(View.VISIBLE);
        leftFrame.setLayoutParams(new LayoutParams(0, LayoutParams.FILL_PARENT, 3));
    }

    // Set up the right frame
    if (rightFrame != null) {
        rightFrame.setVisibility(View.VISIBLE);
        rightFrame.setLayoutParams(new LayoutParams(0, LayoutParams.FILL_PARENT, 7));
    }

    // TODO: set up animation

    // Start the transition
    commitTransition();
}

希望这能有所帮助!--兰迪

票数 6
EN

Stack Overflow用户

发布于 2011-06-04 02:18:32

我认为你可以使用3 FrameLayouts并隐藏未使用的框架。因此,项目框架最初是隐藏的。在文件夹框架中选择某个项目时,帐户框架将隐藏,并且项目名称将可见。文件夹框架(或主要活动)必须截取后退按钮,以便它可以隐藏项目框架并使帐户框架可见。

票数 2
EN

Stack Overflow用户

发布于 2012-02-25 11:18:05

我认为你可以从StackScrollView得到一些关于Android的想法。

https://github.com/raweng/Android-StackScrollview

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5811922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档