开发者

Android click event of items in HorizontalScrollView not respond after scroll

I have an HorizontalScrollView and I am adding buttons in LinearLayout inside HorizontalScrollView and had set onClickListener to buttons.

When I scroll the ScrollView and immediately click on any button it never responds to onClick, but 3-5 seconds after scrolling, it responds to onClick.

Please explain how can I get ride of this. Am I missing something?

<HorizontalScrollView android:layout_height="wrap_content"
        android:layout_width="600dip"
            android:layout_centerInParent="true" android:gravity="left"
            android:id="@+id/horizontalScrollView1" 

            >
            <LinearLayout android:orientation="horizontal"
                android:id="@+id/llChnnelCategoriesLayout" android:layout_height="wrap_content"
                android:layout_width="wrap_content">
                <TextView android:text="All " android:id="@+id/optionText1"
                    style="@style/CategoriesText"></TextView>
                <TextView android:text="l"
                    style="@style/CategoriesDeviderText"></TextView>
                <TextView android:text="Business News" android:id="@+id/optionText2"
                    style="@style/CategoriesText"></TextView>
                <TextView android:text="l"
                    style="@style/CategoriesDeviderText"></TextView>
                </LinearLayout>
        </HorizontalScrollView>

And in Activity I am adding buttons and setting 'onClickListener'.

  LinearLayout llChannelCategoriesLayout;
    arrChannelCategory = new String[] {"All Ch开发者_如何转开发annels","Business News","Entertainment", "News","Cartoon","Music","Other"};
    llChannelCategoriesLayout =(LinearLayout)findViewById(R.id.llChnnelCategoriesLayout);
    llChannelCategoriesLayout.removeAllViews();
    for(int i=0; i<arrChannelCategory.length;i++)
    {
        Button btnCategory = new Button(this);
        TextView tvDevider = new TextView(this);
        tvDevider.setTextAppearance(getApplicationContext(), R.style.ChannelCategoriesDeviderText);


        btnCategory.setTextAppearance(getApplicationContext(), R.style.ChannelCategoriesText);
        //btnCategory.setTextSize(TypedValue.COMPLEX_UNIT_SP, 15);

        btnCategory.setText(arrChannelCategory[i]);
        btnCategory.setPadding(Math.round(15*density), Math.round(5*density), Math.round(15*density), Math.round(5*density));
        btnCategory.setClickable(true); 
        btnCategory.setBackgroundColor(Color.TRANSPARENT);

        btnCategory.setId(i+3000);

        if(i != arrChannelCategory.length-1)
        {
            tvDevider.setText("  l  ");
        }

        btnCategory.setOnClickListener( new OnClickListener() {

            @Override
            public void onClick(View v) {
                changeColor(v.getId());
                Log.v("Channel Category Clicked ==","***"+arrChannelCategory[v.getId()-3000]);
            }
        });         

        llChannelCategoriesLayout.addView(btnCategory);     
        llChannelCategoriesLayout.addView(tvDevider);       

    }   

    //changeColor(3000);

}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜