android - 为什么我的按钮在第一次点击时不起作用?

标签 android events button click

我有一个按钮的问题,当我第一次使用它时不生成点击事件,但是如果我点击屏幕而不是按钮然后我点击它。它直接工作!

在我的 onCreateView fragment 中我有:

    viewAnimator = (ViewAnimator) inflater.inflate(R.layout.fragment_login_supplier, container, false);
    initView(viewAnimator);

在 initView 中:

private void initView(ViewAnimator ll) {
......

    errorButton = (Button) errorLayout.findViewById(R.id.buttonError);
    errorButton.setBackgroundResource(btnErrorSelector);
    errorButton.setOnClickListener(FragmentLoginSupplier.this);
.....

我的 fragment 实现了 OnClickListener 但我的:@Override public void onClick(View vue) {} 第一次什么都没收到...

按钮 id : buttonError

这里是布局的开始:

<ScrollView
    android:id="@+id/scrollViewForm"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="top" >

    <LinearLayout
        android:id="@+id/login_form_container"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <RelativeLayout
            android:id="@+id/RelativeLayoutErrorMessage"
            android:layout_width="match_parent"
            android:layout_height="@dimen/button_height"
            android:background="@color/DarkGray"
            android:visibility="gone" >

            <ImageView
                android:id="@+id/ImageViewErrorMessage"
                android:layout_width="15dp"
                android:layout_height="15dp"
                android:layout_alignParentLeft="true"
                android:layout_centerVertical="true"
                android:layout_marginLeft="10dp"
                android:contentDescription="@string/todo"
                android:src="@drawable/alert_white"
                android:visibility="gone" />

            <TextView
                android:id="@+id/textViewErrorMessage"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_marginLeft="5dp"
                android:layout_toLeftOf="@+id/buttonError"
                android:layout_toRightOf="@+id/ImageViewErrorMessage"
                android:text="@string/vous_n_avez_pas_encore_ajout_de_compte"
                android:textColor="@color/white" />

            <Button
                android:id="@+id/buttonError"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_alignParentRight="true"
                android:layout_margin="5dp"
                android:background="@drawable/button_suppression_noir_selector" />
        </RelativeLayout>

        <View
            android:id="@+id/RelativeLayoutErrorMessageBottomBorder"
            android:layout_width="wrap_content"
            android:layout_height="1dp"
            android:background="#FFFFFFFF"
            android:visibility="gone" />

最佳答案

我不知道这是否能解决您的问题。但即使是我在点击按钮时也遇到了问题。这段代码对我来说很有效。我认为在第一种情况下,第一次点击只会引起关注。第二次点击是“真正的”点击。

<style name="ButtonStyle" parent="@android:style/Widget.Holo.Button">
    <item name="android:focusable">true</item>
    <item name="android:focusableInTouchMode">true</item>
    <item name="android:clickable">true</item>
    <item name="android:background">@drawable/custom_button</item>
    <item name="android:textColor">@color/somecolor</item>
    <item name="android:gravity">center</item>
</style>

请尝试并告诉我。

您可以尝试的另一个解决方案是添加 abc.java

input.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            public void onFocusChange(View v, boolean hasFocus) {
                if (hasFocus) {
                    v.performClick();
                }
            }
        });

并制作<item name="android:focusableInTouchMode">true</item>在你的 Xml 中。

如果成功了请告诉我

关于android - 为什么我的按钮在第一次点击时不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16233534/

相关文章:

javascript - 当mousedown直到mouseup时如何做工作?

Android - 如何在带有 ✔ 的按钮上设置文本颜色作为 Android M 上的文本

android - 如何在android中调整原始图像的大小

android - 我的 Activity 中缺少后退箭头

android - 在更多 Activity 中使用 bundle ?

c# - 在 Winform 中引发一次 UserControl Load 事件

android - 旋转 Open GL 顶点数组中的单个多边形?

javascript - 带有 OMS 的 Google map - 响应点击事件的标记属性

css 链接按钮选择的颜色

css - 隐藏默认的 css 按钮