我为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,只是在它们被创建的位置。
希望你们明白我想要完成的事情。
提前致谢