Android中include标签使用一些常用注意事项

在Android布局文件中 我们常常遇到布局文件的复用,虽然还是复用但还是需要加以区别来实现不同的逻辑,我在使用include遇到的问题和解决,用以记录。

MainActivity布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@color/backgroud">

    <View style="@style/common_view_style"/>
    <include
        android:id="@+id/include1"
        layout="@layout/work_view_entrance"></include>
    <View style="@style/common_view_style"/>

    <include
        android:id="@+id/include2"
        layout="@layout/work_view_entrance"></include>
    <View style="@style/common_view_style" />
</LinearLayout>

work_view_entrance布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
style="@style/common_layout_style"
    android:id="@+id/ll_includetitle"
android:layout_width="368dp"
android:layout_height="wrap_content"
android:background="@drawable/listselector_selector"
android:gravity="center_vertical"
android:orientation="horizontal">

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@mipmap/event_bg" />
<TextView
    android:id="@+id/include_title"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginLeft="10dp"
    android:layout_weight="1"
    android:paddingBottom="7dp"
    android:paddingRight="10dp"
    android:paddingTop="7dp"
    android:text="测试"
    android:textColor="@color/blackness"
    android:textSize="18sp" />

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"
    android:src="@mipmap/icon_next" />
</LinearLayout>
现在我两次引用 work_view_entrance来布局 但是如何区别呢?

在include设置两个id 这样可以区分两个include布局文件,但是我需要改变work_view_entrance布局中textview设置text属性

  	View include1=  findViewById(R.id.include1);
        View include2=  findViewById(R.id.include2);
        TextView title1= (TextView) include1.findViewById(R.id.include_title);
        TextView title2= (TextView) include2.findViewById(R.id.include_title);

如图  虽然 work_view_entrance中textView的id是相同的但是view的视图 include1和include2的view是不同的,因此他们的textview也是不同的;

但是,我在MainActivity布局文件中 有两个item,如何设置点击事件呢?我试图和textview一样 获取外层的LinearLayout,对LinearLayout设置点击事件,发现空指针

其实很简单 include1和include2设置点击事件就可以

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值