1

Android アプリに問題があります。曲の歌詞を表示するために、垂直スクロールバーを備えた単純な Textview を使用しています。問題は、私のアクティビティで、この同じ Textview に Onclick イベントを設定したことです。そのため、テキストビューで歌詞をスクロールすると、画面から指を離すと、アクティビティによってクリック イベントが登録されます。スクロール後に onClick イベントを発生させたくありません。

これまでに行ったことは次のとおりですが、十分に正確ではない onLongClick イベントを使用しているため、実際にはうまく機能しません。

public class NowPlayingActivity extends Activity implements ckListener,OnLongClickListener
{
   private TextView lyrics;
   private static final String TAG_LYRICS = "LYRICS";   
   @Override
   protected void onCreate(Bundle savedInstanceState)
   {
       this.lyrics = (TextView) this.findViewById(R.id.now_playing_Lyrics);
       this.lyrics.setOnClickListener(this);
       this.lyrics.setMovementMethod(new ScrollingMovementMethod());
       this.lyrics.setOnLongClickListener(this);
}
public void onClick(View v)
{
    String tag = (String) v.getTag();
    if (tag.equals(NowPlayingActivity.TAG_LYRICS))
    {
        if (this.scrolled) //this way, the click action doesnt occur after a scroll
        {
            this.scrolled = false;
        }
        else
        {
            this.scrolled = false;
            this.artwork.setVisibility(View.VISIBLE);
            this.lyrics.setVisibility(View.GONE);
        }
    }
    public boolean onLongClick(View arg0)
    {
        this.scrolled =  true;

        return this.scrolled;
    }

より「正確」にするにはどうすればよいですか(したがって、機能させるために longClick を作成する必要はありません)

ありがとう!

4

1 に答える 1

2

テキストビューをスクロールビュー内に配置します。

<ScrollView
        android:id="@+id/content_scroll"
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:layout_margin="7dip"
        android:scrollbars="none" >

        <TextView
            android:id="@+id/fileContent"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dip" />
    </ScrollView>

その後、正常に動作するはずです。それが役に立てば幸い

于 2012-11-27T04:37:14.640 に答える