这是我的问题,我似乎无法绕过listview底部的边缘。
我尝试了几种方法,你可以为backgroup资源创建一个形状,尝试编程的ally和布局xml,但它根本不做任何事情。
就像我做错了我怀疑,因为我熟悉形状,或者其他东西干扰了我的尝试。
无论哪种方式,我需要帮助就是我所得到的。
这里有一些构成你正在看的内容的xml。
这构成了实际的对话框。 (settings_dialog.xml)
<?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"
android:background="#BB000000"
android:gravity="center">
<ImageView
style="@style/CloseButtonStyle"
android:id="@+id/ivCancel_SD"
android:layout_width="75dp"
android:layout_height="75dp"
android:layout_above="@+id/rlContainer_SD"
android:layout_toRightOf="@+id/rlContainer_SD"
android:layout_toEndOf="@+id/rlContainer_SD"/>
<RelativeLayout
style="@style/SettingsDialogStyle"
android:id="@+id/rlContainer_SD"
android:layout_width="800dp"
android:layout_height="600dp"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true">
<TextView
style="@style/SettingsHeaderStyle"
android:id="@+id/tvSettingsLabel_SD"
android:layout_width="330dp"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:text="@string/sd_header_label"/>
<ListView
style="@style/SettingsListStyle"
android:id="@+id/lvOptions_SD"
android:background="@drawable/bg_listview_corners"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/tvSettingsLabel_SD"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"/>
</RelativeLayout>
</RelativeLayout>
这位于我的styles.xml中,其中包含一些与此无关的其他内容。
<style name="SettingsListStyle">
<item name="android:divider">@color/table_divider_color</item>
<item name="android:dividerHeight">1dp</item>
<item name="android:paddingTop">40dp</item>
<item name="android:paddingLeft">6dp</item>
<item name="android:paddingRight">6dp</item>
<item name="android:paddingBottom">2dp</item>
</style>
这构成了list_item。 (settings_list_item.xml)
<?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="80dp"
android:padding="5dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
style="@style/SettingsOptionNameStyle"
android:id="@+id/tvOptionName_SLI"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<TextView
style="@style/SettingsOptionDescStyle"
android:id="@+id/tvOptionDesc_SLI"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"/>
</LinearLayout>
</RelativeLayout>
这是我过去尝试过的边缘形状。
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/bg_listview_corners" android:shape="rectangle">
<corners android:radius="30dp" />
</shape>
我也试过这件作品。
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/bg_listview_corners" android:shape="rectangle">
<corners
android:bottomRightRadius="30dp"
android:bottomLeftRadius="30dp" />
</shape>
这是我认为您在途中需要帮助我的所有信息。 如果我错过了一些信息,或者您只是有疑问,请不要犹豫。
更新1: 我发现它只是塑造了listview的容器,而不是listview本身 有什么想法吗?
答案 0 :(得分:1)
你可以增加填充(paddingRight,paddingLeft和paddingBottom)
<style name="SettingsListStyle">
<item name="android:divider">@color/table_divider_color</item>
<item name="android:dividerHeight">1dp</item>
<item name="android:paddingTop">40dp</item>
<item name="android:paddingLeft">7dp</item>
<item name="android:paddingRight">7dp</item>
<item name="android:paddingBottom">3dp</item>
或在listview上使用蒙版背景(例如使用9-Patch作为蒙版的Post,或者您可以使用&#34; bg_listview_corners.xml&#34;背景作为蒙版)< / p>
答案 1 :(得分:0)
您可以在drawable文件夹中创建一个名为custom_list.xml的自定义背景可绘制选择器文件,其中包含此代码
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/list_pressed" android:state_pressed="true"/>
<item android:drawable="@drawable/list_focused" android:state_focused="true"/>
<item android:drawable="@drawable/list_default"/>
</selector>
然后在您的drawable文件夹中创建另一个文件list_default.xml,其中包含此代码
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<gradient
android:angle="270"
android:endColor="#1c95a0"
android:startColor="#1c95a0" />
<corners android:radius="5dip" />
</shape>
最后将列表视图的背景属性设置为
android:background="@drawable/custom_list"
答案 2 :(得分:0)
按照@Sally的建议使用掩码结束,这是我改变它的方式。
<?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"
android:background="#BB000000"
android:gravity="center">
<ImageView
style="@style/CloseButtonStyle"
android:id="@+id/ivCancel_SD"
android:layout_width="75dp"
android:layout_height="75dp"
android:layout_above="@+id/rlContainer_SD"
android:layout_toRightOf="@+id/rlContainer_SD"
android:layout_toEndOf="@+id/rlContainer_SD"/>
<RelativeLayout
style="@style/SettingsDialogStyle"
android:id="@+id/rlContainer_SD"
android:layout_width="800dp"
android:layout_height="600dp"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true">
<TextView
style="@style/SettingsHeaderStyle"
android:id="@+id/tvSettingsLabel_SD"
android:layout_width="330dp"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:text="@string/sd_header_label"/>
<ListView
style="@style/SettingsListStyle"
android:id="@+id/lvOptions_SD"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/tvSettingsLabel_SD"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"/>
</RelativeLayout>
<ImageView
android:layout_width="800dp"
android:layout_height="600dp"
android:layout_centerVertical="true"
android:background="@drawable/bg_listview_corners"/>
</RelativeLayout>
我在与容器匹配的相对布局之上添加了ImageView
。
这是我用于屏蔽布局的drawable。(bg_listview_corners.xml)
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape android:shape="rectangle" >
<stroke
android:width="12dp"
android:color="@color/app_night_sky_color" />
<padding android:left="6px"
android:top="6px"
android:right="6px"
android:bottom="6px"/>
<corners android:radius="30dp" />
</shape>
</item>
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<stroke
android:width="6dp"
android:color="@color/popup_bg_color" />
<corners android:radius="30dp" />
</shape>
</item>
</layer-list>