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



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

布局.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 等视图:

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

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

编辑

正如 MathanG 回答的那样 - 当我在片段中使用线性布局的参考时,即

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

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

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

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

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

是的,当然您可以按照@MathanG的建议访问布局内的视图,因为即使布局可见性设置为"消失",也不意味着布局被删除,它实际上存在,只是布局不占用任何空间,请参阅 Android 开发人员 setVisibility="gone"

最新更新