Android ListView项目的位置

时间:2017-07-03 17:59:22

标签: android android-layout listview

我想创建ListView,其中项目的位置就像截图一样。因此,文本将位于左侧,而“切换”位于右侧。我知道它应该由TableLayout完成,但我无法弄明白。谢谢你的帮助。 enter image description here

3 个答案:

答案 0 :(得分:2)

您可以使用SwitchPreference轻松实现此目的。

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">

    <SwitchPreference
        android:defaultValue="true"
        android:key="key_data_saver"
        android:title="Data Saver"
        android:summary="Enable click-to-download for images and videos when using mobile data" />

</PreferenceScreen>

这是一个有用的教程:Android Implementing Preferences Settings Screen

如果您想在没有SwicthPreference的情况下创建自己的广告,请对每个RecyclerView项使用custom layout row

以下是您预期的行项目布局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="wrap_content"
    android:padding="16dp">

    <Switch
        android:id="@+id/switchRight"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:checked="true"/>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_toLeftOf="@id/switchRight"
        android:layout_marginRight="8dp">

        <TextView
            android:id="@+id/textTitle"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textColor="#000000"
            android:textSize="18sp"
            android:text="Data Saver"/>

        <TextView
            android:id="@+id/textDescription"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="2dp"
            android:textColor="#727272"
            android:textSize="16sp"
            android:text="Enable click-to-download for images and videos when using mobile data"/>
    </LinearLayout>

</RelativeLayout>

<强>输出:

enter image description here

希望这会有所帮助〜

答案 1 :(得分:0)

实现此目的的最佳方法是使用PreferenceFragment。

您可以使用所有设置创建XML文件。 (假设您可以在“res”)

中创建“XML”文件夹中的“settings.xml”
<?xml version="1.0" encoding="utf-8"?>

<PreferenceCategory android:title="@string/settings_category_app">
    <SwitchPreference
        android:defaultValue="false"
        android:key="@string/settings_notification_switch"
        android:summary="Enable Click to download images and videos..."
        android:title="Data Saver" />
</PreferenceCategory>

更新这是一个静态类,因为我在主要活动

中创建了

之后,您可以使用以下命令将此资源添加到SettingsFragment:

public static class SettingsFragment extends PreferenceFragment {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.settings);
    }
}

然后您可以将此片段用作任何其他片段。 (例如在抽屉上)

答案 2 :(得分:0)

TableLayout在你的情况下不需要,因为你没有任何表。你必须改为使用RelativeLayout:

<?xml version="1.0" encoding="utf-8"?>
   <RelativeLayout 
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:height="wrap_content"
        android:width="match_parent"
        >
        <TextView
            android:height="wrap_content"
            android:width="wrap_content"
            android:id="@+id/tvTitle"
            android:layout_alignParentLeft="true"
            android:text="Title"
         />
         <TextView
            android:height="wrap_content"
            android:width="wrap_content"
            android:id="@+id/tvSubTitle"
            android:layout_below="@id/tvTitle"
            android:text="Subtitle"
         />
         <ToggleButton
            android:height="wrap_content"
            android:width="wrap_content"
            android:id="@+id/tbSwitch"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:text="switch"
         />
    />

对于ToggleButton的IOS样式,您可以使用此库:https://github.com/kyleduo/SwitchButton