最近要做一个APP,界面效果是这样的
恩,其中涉及到6个类似的组合型布局。其中的单个布局,我们可以这么写:
Item_Home.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
android:gravity="center"
android:orientation="vertical"
android:padding="@dimen/padding"
android:descendantFocusability="blocksDescendants">
<ImageView
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:adjustViewBounds="true"
android:src="@drawable/icon_home_other" />
<TextView
style="@android:style/TextAppearance.Medium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="党史资料" />
</LinearLayout>
其中
android:descendantFocusability="blocksDescendants"
是为了阻止view继续向子view传递触摸事件。当view里面有可触摸的控件时候,虽然可以
android:focusable="false"
,但是毕竟太麻烦,还是直接阻止掉比较爽快
恩,单个布局文件就25行,一点也不多
怎么办?直接include?噢耶,无法访问子元素。那么我用代码的方式,往里面一个个添加?Oh no,Activity的代码已经够多了,我可不想让我的代码变得更加臃肿。