暗影分离Android的片段之间(Shadow Separator Between Android

2019-07-29 11:21发布

我对平板电脑类似ICS的Gmail应用程序的布局( ListFragment左侧和内容在右边),我想知道我怎么会去构建布局,使得在两个片段之间的阴影分离器(像Gmail应用中,如下所示)

此外,由于这是适用于这个问题,我怎么能有一个活动列表中的项目的布局不错三角/箭头标记? 我认为要实现这一点,ListView控件本身必须位于阴影“层” ,但我不知道如何创建。

Answer 1:

只是为了让大家知道(因为似乎是缺乏信息在那里对这个话题),这是个别列表行视图的背景选择XML内完成。 例如,这是主屏幕的布局,

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/list_row"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:background="@drawable/list_item_selector">

    ...<!-- Rest of layout goes here -->

</RelativeLayout>

但魔术进来的list_item_selector

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@drawable/list_pressed" />
    <item android:state_activated="true" android:drawable="@drawable/list_arrow_activated"  />
    <item android:drawable="@drawable/list_default" />
</selector>

通过定义这些为9补丁可绘制这样,你可以在每个列表项有助于它的宽度值得阴影在中间那条线,当它被激活时,阴影的那部分将用箭头取代。 我希望这可以帮助别人,因为它肯定帮助了我!



Answer 2:

我希望做的是你试图做同样的事情; 创建一个片段比另一个“更接近”的效果。

Roboguy的回答如何处理有白色箭头“选择”的列表项; 我会尽量更具体的了解阴影。 使用的背景选择的另一个很好的例子可以在谷歌IO 2011应用程序的源代码中可以看出。 一旦你的来源,看fragment_dashboard.xml图标选择。

阴影分离器是一个梯度,施加到一个视图的左侧。 有两个部分;

首先,“影子”本身:

RES / shadow_left.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
    android:angle="0"
    android:startColor="#55000000" 
    android:endColor="#00000000"
    />
</shape>

然后,为了真正把它应用到一个布局:

布局/ my_lower_layer

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
<View
    android:layout_width="20dp"
    android:layout_height="fill_parent"
    android:background="@drawable/fragment_shadow_left" />
<ImageView
    android:id="@+id/imageview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true" />
</RelativeLayout>

这必须有一个相对布局完成(据我所知)。 如果您使用的是线性布局,你可以用整个的LinearLayout相对布局里面,然后用梯度加。

需要注意的是,如果你这样做,坡度<View>已去下面的<LinearLayout> ; 否则,梯度将线性布局下,可以得出,所以你不会看到它。



文章来源: Shadow Separator Between Android Fragments