我正在尝试创建自定义视图,并且我从LinearLayout
扩展:
public class CustomView extends LinearLayout {
private ImageView mPrevImgView;
public CustomView(Context context, AttributeSet attrs) {
super(context, attrs);
View root = ((LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.custom, null);
this.addView(root);
mPrevImgView = root.findViewById(R.id.xx);
....
}
}
layout/custom.xml
:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/xx"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
.......
</LinearLayout>
然后我尝试以这种方式使用它:
<CustomView android:layout_width.....>
...
</CustomView>
这可以按预期工作。
然而,CustomView
本身似乎是LinearLayout
,然后在构造函数中添加另一个LinearLayout
,这会导致两个LinearLayout
嵌套,这是不必要的。我想知道是否有可能避免这种情况?
答案 0 :(得分:0)
// try this way
**custom.xml**
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/xx"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:adjustViewBounds="true"/>