Android SeekBar的状态在不触摸时会被压缩

时间:2016-04-12 14:12:44

标签: android android-view android-seekbar

这可能是布局xml:

public function get_all()
{
    $area = $this->session->userdata('area'); 
    $this->db->select('*'); // the select statement
    $this->db->where('l_area',$area);
    $query = $this->db->get('consignment'); // the table   
    $result = $query->result_array();

    print_r($result);
}

我将<RelativeLayout android:id="@+id/seek_bar_wrapper" android:layout_width="match_parent" android:layout_height="200dip"> <SeekBar android:id="@+id/seek_bar" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_margin="20dip" android:maxHeight="2dip" android:minHeight="2dip" android:progressDrawable="@drawable/drawable_seekbar_progress" android:thumb="@drawable/drawable_seekbar_thumb" /> </RelativeLayout> 设置为OnClickListener。奇怪的是,当我触摸RelativeLayout时,RelativeLayout的表现就像我按下它一样,当它的状态被按下时,它的拇指变成了可绘制的。我认为它的状态变得紧迫。

这是一个错误以及如何处理它?<​​/ p>

2 个答案:

答案 0 :(得分:3)

ViewGroups似乎将他们的状态传递给他们的孩子,因为他们可以点击这个问题:View gets its drawable state (pressed, etc...) from its parent

可能会发生这种情况,因为您将OnClickListener设置为RelativeLayout

我的第一个倾向是将Button放在SeekBar后面作为SeekBar的兄弟,并将其用于OnClick操作。

您也可以覆盖RelativeLayout,并在setPressed

上不执行任何操作

Android: Child elements sharing pressed state with their parent even when duplicateParentState specified

根据文档:http://developer.android.com/training/gestures/viewgroup.html

  

在ViewGroup中处理触摸事件需要特别小心,因为它是   通常,ViewGroup可以将子目录作为不同的目标   触摸事件比ViewGroup本身。确保每个视图   正确接收针对它的触摸事件,覆盖   onInterceptTouchEvent()方法。

所以这似乎是预期的行为。如果您想避免此行为,您似乎需要覆盖ViewGroupRelativeLayout)或使用View的父SeekBar为此事件

答案 1 :(得分:2)

只需设置

           .wrap .nav li {
            float: left;
            width: 198px;
            height: 198px;
            margin: 0 0 3px 0;
            background: rgba(0, 0, 0, 0.2);
            position:relative;
             }
             .wrap .nav li:before{
           content:" ";
           position:absolute;
           border-top:1px solid red;
           border-bottom:1px solid red;
           height:20px;
           z-index:9;
           width:100%;
           top:50%;
           }
          .wrap .nav li:after{
              content:" ";
              position:absolute;
              border-left:1px solid white;
              border-right:1px solid white;
              z-index:9;
              height:100%;
              left:50%;
              width:20px;
               }

到搜索栏