gpt4 book ai didi

android - 像抽屉导航一样实现 Gmail 平板电脑

转载 作者:IT王子 更新时间:2023-10-28 23:31:48 24 4
gpt4 key购买 nike

我正在研究 Gmail 应用程序的平板电脑设计。在那个 Navigation Drawer 实现与其他实现不同。我已附上图片供您引用。

enter image description here

当我展开抽屉时,它应该像正常的抽屉导航行为一样发生。

enter image description here

我想以同样的方式实现。我正在搜索,但我只找到了这个 link这不是那么有帮助。谁能给我建议我该怎么做!

最佳答案

您可以在主 Pane 上使用带有边距的 SlidingPaneLayout 和用于交叉淡入淡出的自定义监听器。

<com.sqisland.android.CrossFadeSlidingPaneLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/sliding_pane_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:layout_width="240dp"
android:layout_height="match_parent"
android:background="@color/purple">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/full"/>
<TextView
android:layout_width="64dp"
android:layout_height="match_parent"
android:background="@color/blue"
android:text="@string/partial"/>
</FrameLayout>
<TextView
android:layout_width="400dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:layout_marginLeft="64dp"
android:background="@color/light_blue"
android:text="@string/pane_2"/>
</com.sqisland.android.CrossFadeSlidingPaneLayout>

子类 SlidingPaneLayout 并在 onFinishInflate 中找到部分和完整的 Pane :

protected void onFinishInflate() {
super.onFinishInflate();

if (getChildCount() < 1) {
return;
}

View panel = getChildAt(0);
if (!(panel instanceof ViewGroup)) {
return;
}

ViewGroup viewGroup = (ViewGroup) panel;
if (viewGroup.getChildCount() != 2) {
return;
}
fullView = viewGroup.getChildAt(0);
partialView = viewGroup.getChildAt(1);

super.setPanelSlideListener(crossFadeListener);
}

使用监听器更改完整 Pane 和部分 Pane 的 alpha:

private SimplePanelSlideListener crossFadeListener 
= new SimplePanelSlideListener() {
public void onPanelSlide(View panel, float slideOffset) {
super.onPanelSlide(panel, slideOffset);
if (partialView == null || fullView == null) {
return;
}

partialView.setVisibility(isOpen() ? View.GONE : VISIBLE);
partialView.setAlpha(1 - slideOffset);
fullView.setAlpha(slideOffset);
}
};

另外,打开布局时隐藏部分 Pane 。

protected void onLayout(
boolean changed, int l, int t, int r, int b) {
super.onLayout(changed, l, t, r, b);

if (partialView != null) {
partialView.setVisibility(isOpen() ? View.GONE : VISIBLE);
}
}

更多信息:http://blog.sqisland.com/2015/01/partial-slidingpanelayout.html

关于android - 像抽屉导航一样实现 Gmail 平板电脑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27400061/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com