【问题标题】:How to make every content of a Relative Layout clickable in android如何在android中使Relative Layout的每个内容都可以点击
【发布时间】:2015-03-06 07:48:25
【问题描述】:

我有一个布局:

<RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="227dp"
        android:addStatesFromChildren="true"
        android:clickable="true"
        android:duplicateParentState="false"
        android:focusable="true"
        android:id ="@+id/relLay">

        <Gallery
            android:id = "@+id/gvImage"
            android:layout_height="200dp"
            android:layout_width="match_parent"
            android:paddingRight="5dp"
            android:paddingLeft="5dp"
            android:fadingEdgeLength="2dp"
            android:clickable="true"/>


    <TextView
        android:clickable="true"
        android:id="@+id/myImageViewText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/gvImage"
        android:layout_alignTop="@+id/gvImage"
        android:layout_alignRight="@+id/gvImage"
        android:gravity="center"
        android:text=SOMETHING"
        android:textAppearance="@android:style/TextAppearance.Large"
        android:textStyle="bold"
        android:textColor="#FF0000"
        android:layout_marginLeft="1dp"
        android:layout_marginRight="1dp"
        android:layout_marginTop="1dp"
        android:layout_alignParentBottom="true" />

        <ToggleButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/toggleButton"
            android:layout_marginTop="20dp"
            android:layout_marginRight="20dp"
            android:layout_alignParentTop="true"
            android:layout_alignParentRight="true"
            android:layout_alignParentEnd="true"
            android:textOn=""
            android:textOff=""
            android:drawableTop="@drawable/favorite_check"
            android:gravity="center"
            android:background="@null"/>

        <TextView
            android:background="#CCCCCC"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Rate: ?"
            android:textColor="#FF0000"
            android:textStyle="bold"
            android:textSize="20dp"
            android:id="@+id/textView2"
            android:layout_alignBottom="@+id/gvImage"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true" />


    </RelativeLayout>

并且是被一个片段类调用的,

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.search_result, container, false);
        Gallery gallery = (Gallery)view.findViewById(R.id.gvImage);
        gallery.setAdapter(new ImageAdapter(getActivity().getApplicationContext()));

        
        return view;
    }

我想做类似的事情,如果我单击该 xml 文件的 RelativeLayout 内的任何项目,它会执行类似的操作,将转到另一个类或 Toast 文本。 我将如何做到这一点?

【问题讨论】:

  • 你甚至谷歌了吗?你的问题在哪里?
  • 您在 xml 中也有错字...
  • 是的,我曾尝试调用方法,但遇到了 GalleryView 的问题。

标签: android android-layout android-relativelayout onclicklistener clickable


【解决方案1】:

对每个视图实现 onClickListener。

最简单的方法是

<TextView
            android:background="#CCCCCC"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Rate: ?"
            android:textColor="#FF0000"
            android:textStyle="bold"
            android:textSize="20dp"
            android:id="@+id/textView2"
            android:layout_alignBottom="@+id/gvImage"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            onclick="executeTextViewClick" />

并在java类中声明一个函数如下。

public void executeTextViewClick(View view){

//Toast here or navigate to other activity 

}

【讨论】:

  • 它适用于除 之外的所有元素。如果我从这部分调用方法,则 GalleryView 中仅显示一个图像,而不是所有图像。有什么解决办法吗?
  • 对于画廊,您不能简单地做到这一点。您需要使用 CustomAdapter
猜你喜欢
  • 2023-03-15
  • 1970-01-01
  • 2017-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
相关资源
最近更新 更多