增加TextView的触控目标

时间:2016-07-25 18:44:53

标签: android android-layout

有没有办法增加TextView的触摸目标,而不必扩大TextView的尺寸并影响布局?

例如: 如果我在垂直LinearLayout中有多个TextView的地址信息。我点击了电话号码TextView。无论如何,如果没有创建填充并将周围的TextView推得更远,可以使电话号码TextView触摸目标更大吗?

2 个答案:

答案 0 :(得分:0)

您可以使用其他Layout

进行换行

像这样的东西,你可以在布局上设置OnClickListener。如果您想增加触摸目标的大小,只需增加高度。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:id="@+id/layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="some text"/>
    </LinearLayout>

</LinearLayout>

答案 1 :(得分:0)

如果你知道textView的确切大小,你可以为TextViews FrameLayout as parent

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="lorem ipsum" />

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="lorem ipsum" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="8dp"
            android:layout_marginTop="8dp"
            android:paddingBottom="8dp"
            android:paddingTop="8dp"
            android:text="Phone number" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:text="lorem ipsum" />
    </FrameLayout>

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="lorem ipsum" />
</LinearLayout>

在结果中,您可以看到手机TextView的触控区域

screenshot of the rendered layout above

或者,当您使用负边距时,您可以获得相同的结果

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="lorem ipsum" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="lorem ipsum" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="-8dp"
        android:layout_marginTop="-8dp"
        android:paddingBottom="8dp"
        android:paddingTop="8dp"
        android:text="Phone number" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:text="lorem ipsum" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="lorem ipsum" />
</LinearLayout>