text view1
text view1
text view1
正在获得焦点。即使我在每个listview项目的布局中给出了以下按钮属性,我也不想获得按钮的焦点 机器人:可聚焦="假" 机器人:focusableInTouchMode ="假" 任何人请帮帮我
答案 0 :(得分:0)
试试这个:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:focusable="false"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
</LinearLayout>
整个布局上只有Focuable false。
答案 1 :(得分:0)
public class DontPressWithParentButton extends Button {
public DontPressWithParentButton(Context context) {
super(context);
}
public DontPressWithParentButton(Context context, AttributeSet attrs) {
super(context, attrs);
}
public DontPressWithParentButton(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public void setPressed(boolean pressed) {
if (pressed && getParent() instanceof View && ((View) getParent()).isPressed()) {
return;
}
super.setPressed(pressed);
}
}
在布局文件中添加以下元素
<DontPressWithParentButton />
希望这种方法没有任何缺陷
答案 2 :(得分:0)
在某些日子之前,我遇到了同样的问题。但现在我已经解决了。
请跟随。
创建一个名为 DontPressWithParentButton 的类,它扩展了Button,如下所示:
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.widget.Button;
public class DontPressWithParentButton extends Button {
public DontPressWithParentButton(Context context) {
super(context);
}
public DontPressWithParentButton(Context context, AttributeSet attrs) {
super(context, attrs);
}
public DontPressWithParentButton(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public void setPressed(boolean pressed) {
if (pressed && getParent() instanceof View && ((View) getParent()).isPressed()) {
return;
}
super.setPressed(pressed);
}
}
现在,在项目行xml中,如下所示定义Button (添加您的包代替YOUR_APP_PACKAGE)
<YOUR_APP_PACKAGE.DontPressWithParentButton android:id="@+id/deleteBtn" android:layout_width="100dp"
android:layout_height="wrap_content" android:layout_alignParentRight="true"
android:textColor="#FFFFFF"
android:text="Approve"
android:focusable="false"
android:focusableInTouchMode="false"
/>
现在在java文件中引用id,如下所示:
DontPressWithParentButton deleteGameBtn=(DontPressWithParentButton) findViewById(R.id.deleteGameBtn);
现在运行该项目。你会得到你想要的东西。
如果您有任何疑问,请发表评论。答案 3 :(得分:0)
添加android:descendantFocusability="blocksDescendants"
,以便可以阻止子视图(行)。
<ListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:descendantFocusability="blocksDescendants" />
如果你想要 vise wersa 而不是将focusable and focusableInTouchMode to false
添加到item.xml中的imageButton/Button