LongClick无法在LinearLayout中正常工作

时间:2017-10-20 09:38:26

标签: android android-studio android-linearlayout buttonclick onlongclicklistener

我给出了Long layout on Linear layout.Code如下所示。它适用于许多设备。但不能在少数设备上工作如三星Galaxy Tab E,SM-T561。

activity_main layout,

 <LinearLayout
            android:id="@+id/ll_accept"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="0.5"
            android:gravity="center">
            <ImageView
                android:layout_width="40dp"
                android:layout_height="40dp"
                android:layout_marginLeft="10dp"
                android:background="@drawable/ic_accept_24dp" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dp"
                android:text="@string/new_accept"
                android:textColor="@color/new_accept_color"
                android:textSize="@dimen/new_job_accept_reject_txt_size" />
        </LinearLayout>

MainActivity()类,

public class MainActivity extends AppCompatActivity implements View.OnLongClickListener {
...........
   @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        .....................

        llAccept = (LinearLayout) findViewById(R.id.ll_accept);
        llAccept.setOnLongClickListener(this);

        ......................
}

 @Override
    public boolean onLongClick(View v) {
        switch (v.getId()) {
            case R.id.ll_accept:
                //do your need
                break;
             }       
    }
}

1 个答案:

答案 0 :(得分:0)

longClicklistener需要返回boolean,如果点击监听器必须在长时间点击后仍然执行,则为false;如果不需要进一步的操作,则为true

另一个解决方案可能是添加可点击,可聚焦和其他属性,如LinearLayout。