我只是想知道它是否可能?我在活动的布局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);
上面的语句在片段中使用时有效..但是当我试图通过活动引用相同时它会给我空指针异常
答案 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"