zhou0614
温柔可爱小阿邴
采纳率88.9%
2015-09-17 03:56 阅读 4.8k

Android中怎么让一个布局中所有控件都获得这个布局的点击状态

5

我在一个线性布局中有一个ImageView和一个TextView,怎么设置点击这个线性布局的时候ImageView处于选取状态,还有selector怎么设置

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

5条回答 默认 最新

  • 已采纳
    bdmh bdmh 2015-09-17 04:46

    你可以在这个layout的点击事件中,设置ImageView的setPressed(true),这样就可以在selector中因公pressed的设置了

    点赞 1 评论 复制链接分享
  • gundumw100 gundumw100 2015-09-18 06:40

    我想你正需要它们:
    setDuplicateParentStateEnabled 子控件获得父控件的状态,对应android:duplicateParentState
    setAddStatesFromChildren 同上相反,对应android:addStatesFromChildren

    点赞 2 评论 复制链接分享
  • u012263331 myleo_lost-a-horse 2015-09-17 06:04

    监听整个线性布局的点击事件,并在点击时对布局里面的所有相应控件进行状态的设置,所有控件都是可以通过代码进行状态设置的
    setAnimation, setBackgroundColor, setBackgroundDrawable, setBackgroundResource, setClickable, setDrawingCacheBackgroundColor, setDrawingCacheEnabled, setDrawingCacheQuality, setDuplicateParentStateEnabled, setEnabled, setFadingEdgeLength, setFocusable, setFocusableInTouchMode, setHapticFeedbackEnabled, setHorizontalFadingEdgeEnabled, setHorizontalScrollBarEnabled, setId, setIsRootNamespace, setKeepScreenOn, setLayoutParams, setLongClickable, setMinimumHeight, setMinimumWidth, setNextFocusDownId, setNextFocusLeftId, setNextFocusRightId, setNextFocusUpId, setOnClickListener, setOnCreateContextMenuListener, setOnFocusChangeListener, setOnKeyListener, setOnLongClickListener, setOnTouchListener, setPadding, setPressed, setSaveEnabled, setScrollBarStyle, setScrollContainer, setSoundEffectsEnabled, setTag, setTouchDelegate, setVerticalFadingEdgeEnabled, setVerticalScrollBarEnabled, setVisibility, setWillNotCacheDrawing, setWillNotDraw

    点赞 评论 复制链接分享
  • crazy1235 月盡天明 2015-09-17 09:18

    你可以这样:
    对外层的布局添加一个点击事件:
    在onclick()事件中 表现出对子控件的点击事件。
    利用

     xxxx.performClick()
    

    方法。

    实际上你可以做一个透明的蒙层,从布局方面来着手更简单一些。直接对那个蒙层添加点击事件就行了。

    点赞 评论 复制链接分享
  • u012975705 boy_nihao 2015-09-18 03:57

    在Activity中重新整个布局的Touch方法:

     @Override
        public boolean onTouchEvent(MotionEvent event) {
                    imageView.setSelected(true);
            return super.onTouchEvent(event);
        }
    

    在touch方法中加入imageView.setSelected(true);就可以实现点击整个布局的时候ImageView处于选取状态,ImageView的src你可以设置成你自定义的drawable
    比如:

     <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_selected="true" android:drawable="selected.png" />
        <item android:state_pressed="true" android:drawable="selected.png" />
        <item android:state_selected="false" android:drawable="unselected.png" />
        <item android:state_pressed="false" android:drawable="unselected.png" />
    </selector>
    

    至于TextView也类似如此
    还有还想要在点击整个布局中某个LinearLayout(比如ImageView的父控件)时只要通过LinearLayout.setOnClickListener(listener1)或者LinearLayout.setOnTouchListener(listener1)然后重写相应的方法就行

    点赞 评论 复制链接分享

相关推荐