相关疑难解决方法(0)

Android:如何将click事件传播到LinearLayout子项并更改其drawable

我想创建一个线性布局,其行为与ImageButton类似.

<LinearLayout
    android:id="@+id/container"
    style="?WidgetHomeIconContainer">            

    <ImageView
        android:id="@+id/icon"
        style="?WidgetHomeIcon" />

    <TextView
        android:id="@+id/title"
        style="?WidgetHomeLabel"             
        android:text="@string/title"
        android:textAppearance="?attr/TextHomeLabel" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

在ImageView,TextView和LinearLayout的样式中,我为所有状态设置了一个选择器.

现在:

  • 当我点击ImageView(我也尝试使用ImageButton) - 它的行为正确并且图像根据选择器xml进行了更改.
  • 当我点击LinearLayout时 - 单击线性布局,但ImageView和TextView不会改变它的可绘制/外观

所以我想做以下几点.当我点击父LinearLayout时,我需要将它的所有子项更改为按下状态.

我尝试将以下代码添加到LinearLayout onClickListener以传播点击:

@Override
public void onClick(View v)
{
    LinearLayout l = (LinearLayout) v;
    for(int i = 0; i < l.getChildCount(); i++)
    {
        l.getChildAt(i).setClickable(true);
        l.getChildAt(i).performClick();
    }
}
Run Code Online (Sandbox Code Playgroud)

但它仍然保持相同的状态.非常感谢您的帮助.

android onclick android-linearlayout

19
推荐指数
2
解决办法
2万
查看次数

Android:在linearlayout内的gridview的空白处检测点击事件

我有以下问题.我有一个GridView内部LinearLayout如下图所示.我想在用户点击GridView图像中的空白区域时检测点击事件,我想要的位置是红色区域,也是绿色区域内.

但我有以下问题.

  1. 如果我添加onClickListenerGridView:错误,因为适配器不能添加Click事件.
  2. 如果我添加onItemClickListenerGridView:我只是可以检测存在的项目(在图像中的白框)
  3. 如果我添加onClickListener,LinearLayout我只能检测绿色区域上的点击事件,而不是红色区域.

那么我该如何解决上述问题呢.

@Edit:我的布局看起来像:

<LinearLayout>
  <GridView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

谢谢 :)

在此输入图像描述

android

8
推荐指数
1
解决办法
5850
查看次数

如何禁用WebView的单击?

我有线性布局,其中只包含WebView.我想要做的是禁用Webview中的单击,这意味着我希望调用与RelativeLayout bg_stepsContainer关联的事件.我用过android:clickable ="false"这是代码

 <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:minHeight="30dp" 
                    android:layout_marginLeft="5dp"
                    android:layout_marginRight="5dp"
                    android:layout_marginTop="5dp"
                    android:layout_marginBottom="5dp"
                    android:id="@+id/bg_stepsContainer"
                    >

                <LinearLayout
                    android:id="@+id/stepslcontainer"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="true"
                    android:layout_alignParentTop="true"

                    android:clickable="false"
                    android:focusable="false"
                    android:focusableInTouchMode="false" >

                    <WebView
                        android:id="@+id/bg_stepsToReproduce"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:clickable="false"
                        android:focusable="false"
                        android:focusableInTouchMode="false" 

                        android:textColor="@color/solid_black" />

                    </LinearLayout>
                    <ImageView
                        android:id="@+id/stepsArrow"
                        android:layout_width="10dp"
                        android:layout_height="10dp"
                        android:layout_alignParentRight="true"
                       android:clickable="false"
                        android:layout_marginRight="10dp"
                        android:layout_marginLeft="10dp"
                        android:layout_centerVertical="true"
                        android:src="@drawable/ic_right_arrow" />

 </RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

任何建议都得到赞赏!

android android-layout android-webview

6
推荐指数
1
解决办法
1万
查看次数

YouTubePlayer - 如何处理点击侦听器?

我有一个在那里播放视频的布局,我想处理这个播放器上的 onClick 。在我的线性布局中,我有 api 中建议的 YouTube 片段:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <fragment        
        android:name="com.google.android.youtube.player.YouTubePlayerFragment"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/youtubePlayerFragment"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

然后我在我的活动中访问这个片段:

mYouTubePlayerFragment = (YouTubePlayerFragment) getFragmentManager().findFragmentById(R.id.youtubePlayerFragment);
Run Code Online (Sandbox Code Playgroud)

我初始化它:

    mYouTubePlayerFragment.initialize(CategoriesTabsData.DEVELOPER_KEY, new com.google.android.youtube.player.YouTubePlayer.OnInitializedListener() {
        @Override
        public void onInitializationSuccess(com.google.android.youtube.player.YouTubePlayer.Provider provider, com.google.android.youtube.player.YouTubePlayer youTubePlayer, boolean b) {
             // loading the video                
        }

        @Override
        public void onInitializationFailure(com.google.android.youtube.player.YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) {

        }
    });
Run Code Online (Sandbox Code Playgroud)

我想在点击玩家时将“click”打印到 Log.d 。因此,当播放视频并且点击/触摸其播放器时,我想将“点击”打印到日志中

我正在尝试处理播放器上的点击(我在 onInitializationSuccess 中获取了 youtubeplayer 对象),但没有成功。

我试过这个:

    mYouTubePlayerFragment.getView().setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Log.d("youtube", "click");
        }
    });
Run Code Online (Sandbox Code Playgroud)

但它没有到达 onClick。然后,我尝试创建扩展 YouTubePlayerFragment 并实现 …

android youtube-api android-fragments youtube-data-api

5
推荐指数
1
解决办法
4659
查看次数

Android路由/冒泡事件,因为控件正在使用onClick事件

我有一个带有ImageView和TextView的自定义视图,并为我的自定义视图实现了onClickListener.问题是,ImageView正在使用onClick事件(我只希望用户能够点击我的控件,无论在哪里).我也可以听一下Image/TextView的onClick,但它对我来说似乎很脏.

有没有办法在Android中冒泡/路由事件?还是可能的另一个好方法?

events android routes onclick event-bubbling

4
推荐指数
2
解决办法
4171
查看次数

将事件传递给父视图?

我有一个包含五个TextView的布局.当用户单击五个TextView中的任何一个时,它将执行相同的操作:打开另一个活动.因此,五个TextView的OnClickerListener行为是相同的.是否有可能,我只OnClickListerner添加到一个视图,如布局,所以我不必OnClickListerner添加到每个五个TextView的吗?换句话说,如果没有子组件收到CLICK事件,那么CLICK事件是否会传递给他们的父组件,即布局?

谢谢.

java android

1
推荐指数
1
解决办法
8925
查看次数