在我的应用程序中,我正在尝试创建自己的HorizontalScrollView,当您在其中滑动视图时,它会"捕捉".每次它尝试加载布局时,它都会崩溃.所以,我正在采取婴儿步骤.我是新手以编程方式创建自定义视图,因此如果可能存在一些"常识"错误.
这是我的CustomView.java档案:
import android.content.Context;
import android.view.View;
public class CustomView extends View {
public CustomView(Context context) {
super(context);
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的MainActivity.java档案:
import android.app.Activity;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_layout);
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的main_layout.xml档案:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="@+id/lchoose_weapon"
tools:context=".ChooseWeaponActivity" >
<TextView
android:id="@+id/tvTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="Title"
android:textSize="40sp" />
<com.javaknight.ultimaterps.CustomView
android:id="@+id/CustomVw"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tvTitle"
android:layout_centerHorizontal="true" />
<TextView
android:id="@+id/tv2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/CustomVm"
android:layout_centerHorizontal="true"
android:text="Another TextView Below" />
<Button
android:id="@+id/bOK"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tv2"
android:layout_centerHorizontal="true"
android:text="ok" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
使用以下代码无法显示布局.一旦我从xml文件中删除CustomView,它就可以正常工作.我希望xml布局文件包含自定义视图.
您应该在自定义视图中创建所有构造函数:
public CusatomView(Context context) {
super(context);
}
public CustomView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CustomView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
Run Code Online (Sandbox Code Playgroud)
如果你这样做,我猜你的布局会起作用.
| 归档时间: |
|
| 查看次数: |
2637 次 |
| 最近记录: |