我来自iOS开发,我们拥有UITableViewCell
,非常适合制作垂直的内容列表。单元格包含一个主标签和一个辅助标签以及一个图标。
我一直在Android上寻找类似的东西,而“偏好设置”似乎恰恰给了我想要的东西。当我在Android中创建首选项页面时,从XML创建美观的布局确实很容易。使用以下简单的XML代码,我可以获得项目的垂直列表(如iOS中的UITableView
),该项目的左侧有一个漂亮的图标,右侧(一个开关)有一个用户界面元素,一个正确的大小和对齐的标题,以及当我点击首选项时的漂亮动画。
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<SwitchPreference
android:key="setting_toggle"
android:title="@string/setting_toggle"
android:icon="@drawable/setting_toggle"
android:defaultValue="true" />
<SwitchPreference
android:key="setting_toggle2"
android:title="@string/setting_toggle2"
android:icon="@drawable/setting_toggle2"
android:defaultValue="true" />
</PreferenceScreen>
但是,如果我想在“首选项”之外使用类似的布局(在我的情况下,对于链接到其他页面的菜单屏幕),要获得这样一个简单的布局似乎要困难得多。我试图用TableLayout做到这一点:
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:stretchColumns="1">
<TableRow
android:id="@+id/button_1"
android:background="?android:attr/selectableItemBackground"
android:clickable="true"
android:focusable="true">
<TextView
android:text="@string/tablerow_1"
android:textSize="15sp"
android:textStyle="bold"
android:gravity="center_vertical"
android:paddingStart="12dp"
android:paddingEnd="0dp"
android:layout_height="70dp"
android:padding="3dip" />
</TableRow>
</TableLayout>
这将实现点按动画并垂直居中显示文本。但是,我的目标是模仿首选项页面的外观,因此还有很长的路要走:
我很难相信Android会创建一个易于使用的API(例如Preferences),然后使其仅在许多有用的情况下可用。那么,我想念什么?是否有我不知道的,更广泛使用的类似首选项的API,还是我应该仅对诸如菜单之类的非首选项屏幕使用“首选项” API?
答案 0 :(得分:1)
您应将ListView
或RecyclerView
用于自定义视图。
ListView
。ListView
中。有关更多信息,请查看http://developer.android.com/resources/tutorials/views/hello-listview.html