我对平板电脑类似ICS的Gmail应用程序的布局( ListFragment
左侧和内容在右边),我想知道我怎么会去构建布局,使得在两个片段之间的阴影分离器(像Gmail应用中,如下所示)
。
此外,由于这是适用于这个问题,我怎么能有一个活动列表中的项目的布局不错三角/箭头标记? 我认为要实现这一点,ListView控件本身必须位于阴影“层” ,但我不知道如何创建。
我对平板电脑类似ICS的Gmail应用程序的布局( ListFragment
左侧和内容在右边),我想知道我怎么会去构建布局,使得在两个片段之间的阴影分离器(像Gmail应用中,如下所示)
。
此外,由于这是适用于这个问题,我怎么能有一个活动列表中的项目的布局不错三角/箭头标记? 我认为要实现这一点,ListView控件本身必须位于阴影“层” ,但我不知道如何创建。
只是为了让大家知道(因为似乎是缺乏信息在那里对这个话题),这是个别列表行视图的背景选择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补丁可绘制这样,你可以在每个列表项有助于它的宽度值得阴影在中间那条线,当它被激活时,阴影的那部分将用箭头取代。 我希望这可以帮助别人,因为它肯定帮助了我!
我希望做的是你试图做同样的事情; 创建一个片段比另一个“更接近”的效果。
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>
; 否则,梯度将线性布局下,可以得出,所以你不会看到它。