引用包括活动代码android中的布局

时间:2014-11-20 06:56:27

标签: android android-layout layout android-activity include

我只是想知道它是否可能?我在活动的布局xml文件中使用include标记

layout.xml

<LinearLayout 
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" 
    android:padding="5dp">

    <include android:id="@+id/error_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        layout="@layout/error_xml"
      android:visibility="gone"/> --- at first keeping it invisible

<EditText 
        android:id="@+id/edit"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:paddingLeft="10dp"
       />
</LinearLayout>

erro_xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/error_linear"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" 
     android:background="@drawable/error_bg"
     android:weightSum="1"
     android:layout_marginTop="10dp"
     android:visibility="gone" >

   <TextView android:id="@+id/error_txt"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:textColor="@color/white"
    android:textSize="16sp"

     android:layout_weight="0.9"
     android:padding="10dp"/> 

   <ImageView android:id="@+id/error_cross"
    android:layout_width="0dp"
    android:layout_height="wrap_content"

    android:src="@drawable/squarecross"
     android:layout_weight="0.1"
   android:layout_marginTop="6dp"/>
</LinearLayout>

出于某些原因,我希望在某些条件中显示包含的布局,这些条件是在活动代码中动态处理的

我知道我们可以通过编写以下代码来引用EditText和etc视图:

EditText edit = (EditText)findViewById(R.id.edit);

我是否也可以像上面的代码那样引用include标签布局?可能吗?还是我必须给它充气?但是怎么样?我太糊涂了。

修改

作为MathanG的回答 - 我在片段中使用了linearlayout的引用,即

LinearLayout error_layout = (LinearLayout)rootView.findViewById(R.id.error_layout);

上面的语句在片段中使用时有效..但是当我试图通过活动引用相同时它会给我空指针异常

2 个答案:

答案 0 :(得分:3)

您可以直接访问所包含布局中的视图。 Include Tag将动态包含使用布局内的整个布局。因此,直接访问它不会有任何问题。要隐藏和显示包含的布局,您可以使用

error_layout.setVisiblity(View.GONE) 
error_layout.setVisiblity(View.VISIBLE) 

其中error_layout是包含布局(error_xml)的根布局类型。

答案 1 :(得分:1)

是的,您可以按照@MathanG的建议访问布局内的视图,因为即使布局可见性设置为“已消失”,也不意味着布局被删除,实际上只存在布局不需要任何空格都可以参考Android Developer setVisibility="gone"