我是Android开发的新手,并且我错过了一些小而重要的事情(无论是或者我完全做错了什么都是错误的)。 我创建了一个屏幕布局,添加了许多控件(工具栏,自定义视图和两个按钮)。 目前所有自定义视图都是在屏幕上绘制文本。但是,它正在做一些我不希望的事情。
首先,文本在工具栏下方绘制。这不是太大的交易,因为我可以抵消绘图,使其出现在屏幕上,但由于我的工具栏和视图是垂直方向的线性布局,我希望我的自定义视图立即从工具栏下方开始。
无论如何,我的主要问题是,当我的自定义视图添加到布局时,它似乎在整个屏幕上绘制,因此我看不到这两个按钮(如果我删除我的自定义视图按钮就在那里)。
以下是活动的布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/main_activity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
tools:context="com.myapp.MainScreen">
<android.support.v7.widget.Toolbar
android:id="@+id/main_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:elevation="4dp"
android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
<com.myapp.MyControl
android:id="@+id/my_control"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/main_buttons"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button android:id = "@+id/one"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<Button android:id = "@+id/two"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"/>
</LinearLayout>
</LinearLayout>
目前我的控制非常简单:
public class MyControl extends View {
private String mText;
private Paint mTextPaint;
public MyControl(Context context, AttributeSet attributeSet){
super(context, attributeSet);
mText = "My Control";
mTextPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mTextPaint.setTextSize(100);
}
protected void onDraw(Canvas canvas)
{
canvas.drawText(mText, 5, 50, mTextPaint);
}
}
任何帮助将不胜感激
答案 0 :(得分:0)
使用此
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/main_activity"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="1">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.75">
<com.thisana.RageMaker.Helpers.MyControl
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/view"
android:layout_gravity="center_horizontal"/>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.25"
android:weightSum="1"
android:gravity="center"
>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Button"
android:id="@+id/button"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Button"
android:id="@+id/button2"/>
</LinearLayout>
</LinearLayout>
</RelativeLayout>