簡體   English   中英

我的TextView沒看到

[英]My TextView Doesn't Seen

我想在屏幕上看到一個Button對象,一個TextView對象和一個MyView對象。 但是僅出現Button對象和MyVıew對象。 我認為MyView與TextView重疊(在TextView之上)。 因為如果我不向布局中添加( b.addView(a);MyView對象,則ButtonTextView對象會出現在屏幕上。 但是,如果我添加( b.addView(a); )MyView,TextView就消失了。 我怎么解決這個問題?

MyView.java文件:

package com.example.mehmet.catchtheball;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.View;

public class MyView extends View {

    public MyView(Context context) {
        super(context);
    }
    @Override
    protected void onDraw(Canvas canvas) {

        super.onDraw(canvas);
        Paint paint = new Paint();
        paint.setColor(Color.WHITE);
        canvas.drawPaint(paint);
        paint.setColor(Color.parseColor("lightGray"));
        canvas.drawCircle(500, 500, 150, paint);
    }
    public MyView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public MyView(Context context, AttributeSet attrs, int defStyle) {
       super(context, attrs, defStyle);
    }
}

Customer.java文件:

package com.example.mehmet.catchtheball;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;


public class Customer extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_customer);

        MyView a = new MyView(this);
        RelativeLayout b = (RelativeLayout)findViewById(R.id.relativeLayout);
        b.addView(a); // If I do this , TextView gone.

        final TextView label = (TextView) findViewById(R.id.textView3);
        label.setText("HelloEveryOne"); // My TextView

        a.setOnTouchListener(new View.OnTouchListener() {
            public boolean onTouch(View view, MotionEvent motionEvent) {
               return true;
            }
        });
    }
}

activity_customer.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:id="@+id/relativeLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.mehmet.catchtheball.main">

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:onClick="undo"
        android:text="@string/undo" />


    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/button"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginLeft="27dp"
        android:layout_marginStart="27dp"
        tools:textColor="@android:color/background_dark" />

</RelativeLayout>

嘗試使用這個activity_customer.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"
    tools:context="com.example.mehmet.catchtheball.main">

    <RelativeLayout
        android:id="@+id/relativeLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:onClick="undo"
        android:text="@string/undo" />


    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/button"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginLeft="27dp"
        android:layout_marginStart="27dp"
        tools:textColor="@android:color/background_dark" />

</RelativeLayout>

在textView3下面添加LinearLayout作為容器,然后將所有內容添加到

在此處發布的XML中,在執行代碼的代碼中添加一個帶有layout_belowOf = textView3的b.addView(a)替換為:LinearLayout c = findViewById(R.id.ll_c_container)和c.addView(a)

如果要使所有組件位於線性軸上,則只能有一個linearlayout(所有addViews都將添加到最后一個視圖的下方)

    <RelativeLayout
        android:id="@+id/relativeLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <Button
            android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:onClick="undo"
            android:text="@string/undo" />


        <TextView
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentStart="true"
            android:layout_below="@+id/button"
            android:layout_marginStart="27dp" />
    </RelativeLayout>

在您的Java類中只需執行此操作(對不起,我正在編寫kotlin代碼

MyView a = new MyView(this);
        val params = RelativeLayout.LayoutParams(
           ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)
    params.addRule(RelativeLayout.BELOW, textView3.id)
    params.addRule(RelativeLayout.ALIGN_PARENT_START, RelativeLayout.TRUE)
    relativeLayout.addView(textView, params)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM