RelativeLayout的未剪切子视图不可单击

时间:2014-11-21 08:52:08

标签: android relativelayout

我有以下活动。它是可拖动地图的简化。问题是mytext2不可点击,即使它是可见的。谁能告诉我如何让它可点击?由于某种原因,即使我设置了这个高dp,内部RelativeLayout也不会大于屏幕大小。

<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:background="#0000ff"
    android:clipChildren="false"
    tools:context="${relativePackage}.${activityClass}" >

    <RelativeLayout
        android:layout_width="100000dp"
        android:layout_height="100000dp"
        android:background="#00ff00"
        android:translationX="-100dp" >

        <TextView
            android:id="@+id/mytext1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="#ff0000"
            android:text="@string/hello_world"
            android:translationX="400dp"
            android:translationY="100dp" />

        <TextView
            android:id="@+id/mytext2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="#ff0000"
            android:text="@string/hello_world"
            android:translationX="200dp"
            android:translationY="100dp" />
    </RelativeLayout>

</RelativeLayout>

package com.example.relativatest;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        findViewById(R.id.mytext1).setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                System.out.println("HELLO!1");
            }
        });
        findViewById(R.id.mytext2).setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                System.out.println("HELLO!2");
            }
        });
    }
}

1 个答案:

答案 0 :(得分:0)

使用此代码。

<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:background="#0000ff"
    android:clipChildren="false"
    tools:context="${relativePackage}.${activityClass}" >

    <RelativeLayout
        android:layout_width="100000dp"
        android:layout_height="100000dp"
        android:background="#00ff00"
        android:translationX="-100dp" >

        <TextView
            android:id="@+id/mytext1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="#ff0000"
            android:text="@string/hello_world"
            android:focusable="true"
            android:padding="20dp"
            android:translationX="400dp"
            android:clickable="true"
            android:translationY="100dp" />

        <TextView
            android:id="@+id/mytext2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="#ff0000"
            android:text="@string/hello_world"
            android:translationX="200dp"
            android:clickable="true"
            android:padding="20dp"
            android:focusable="true"
            android:translationY="100dp" />
    </RelativeLayout>

</RelativeLayout>