我有一个自定义ImageView
并且如果我在我的activity.xml中添加我的元素,则可以工作,但如果我尝试创建动态元素,则无法工作。
编辑:的解决
注意:不要执行onDraw方法
活动类
val xpp = resources.getXml(R.xml. octocat)
val attr = Xml.asAttributeSet(xpp)
val octocat : OctocatView = OctocatView(this,attr)
octocat.invalidate()
val layout : LinearLayout = findViewById(R.id.layout)
layout.addView(octocat)
** Java Class **
public class OctocatView extends android.support.v7.widget.AppCompatImageView{
private Context mContext;
public OctocatView(Context context, AttributeSet attrs, int defStyleAttr, Context mContext) {
super(context, attrs, defStyleAttr);
this.mContext = mContext;
}
public OctocatView(Context context, AttributeSet attrs) {
super(context, attrs);
mContext = context;
}
public OctocatView(Context context) {
super(context);
mContext = context;
}
protected void onDraw(Canvas c) {
//some code
}
}
元素XML res/xml/octocat.xml
<hackro.tutorials.com.salesfacebook.widget.OctocatView android:layout_height="match_parent"
android:layout_width="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android" />
答案 0 :(得分:1)
在将View
添加到LinearLayout
之前,尝试以编程方式设置octocat.layoutParams = LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT)
layout.addView(octocat)
的大小:
@media (max-width: 500px) {
.dropdown-menu{
height:200px;
overflow-y:auto;
}
}