TextViews动画onClickListener

时间:2016-04-14 09:36:50

标签: java android textview android-linearlayout onclicklistener

我为LinearLayout制作动画,使其像“直播新闻”一样,就像这样。

    <LinearLayout
        android:id="@+id/ll_live_tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="top|start|left"
        android:orientation="horizontal" >

    </LinearLayout>

在LinearLayout内部有几个由2个TextViews(标题和描述)构成的LinearLayout ......

<LinearLayout>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/live_tv_back_color"
android:orientation="vertical"
android:paddingBottom="2dp"
android:paddingEnd="25dp"
android:paddingLeft="5dp"
android:paddingRight="25dp"
android:paddingStart="2dp"
android:paddingTop="2dp" >

<TextView
    android:id="@+id/tv_news_tile"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:scrollHorizontally="true"
    android:singleLine="true"
    android:clickable="true"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:textColor="@color/live_tv_title_color"
    android:textSize="12sp" />

<TextView
    android:id="@+id/tv_news_msg"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:scrollHorizontally="true"
    android:singleLine="true"
    android:clickable="true"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:textColor="@color/live_tv_text_color"/>

</LinearLayout>

我试图将OnclickListener放在第一个布局的子节点上,就像这样......

for(int i=0;i<news.getChildCount();i++){
        news.getChildAt(i).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                TeamNews team_new = team_news_factory.getTeamView((String) v.getTag());

                FragmentNews fragment = FragmentNews.newInstance(team_new.getSqlitePk());
                fragment.show(getFragmentManager(), Home.class.getName());
            }
        });
    }

我试过把它放在TextViews(标题和描述)

OnClickListener myClickListener = new View.OnClickListener() {
        @Override@Override
        public void onClick(View v) {
            TeamNews team_new = team_news_factory.getTeamView((String) v.getTag());

            FragmentNews fragment = FragmentNews.newInstance(team_new.getSqlitePk());
            fragment.show(man, FragmentLiveNews.class.getName());
        }
};

((TextView) ll_new.findViewById(R.id.tv_news_title)).setOnClickListener(myClickListener);
((TextView) ll_new.findViewById(R.id.tv_news_msg)).setOnClickListener(myClickListener);

问题是onClickListener是由构造元素的位置触发而不是抛出动画,例如,如果文本视图位于屏幕中间,如果我点击它就不会触发onClickListener ,但如果我点击它就会触发它(左)。

这是动画的代码:

Animation _anim = new TranslateAnimation(Animation.RELATIVE_TO_PARENT, 1.0f, Animation.RELATIVE_TO_SELF, -1f,
            Animation.RELATIVE_TO_SELF, 0f, Animation.RELATIVE_TO_SELF, 0f);
    _anim.setRepeatCount(Animation.INFINITE);
    _anim.setRepeatMode(Animation.RESTART);
    _anim.setInterpolator(new LinearInterpolator());
    _anim.setDuration(news.getSize() * 20);
    _anim.setFillBefore(false);
    _anim.setFillEnabled(true);

我使用此代码为LinearLayout(ll_live_tv)设置动画,并使用新闻(标题和消息/内容)设置LinearLayout,但视图(标题和消息/内容)仍然是静态的,不遵循动画。当我点击它们时,它们不会触发setOnClickListener,只是在它们被创建的位置。

希望你们明白我想要完成的事情。

提前致谢

0 个答案:

没有答案