我正在重新设计我的应用程序,设置一些动画。现在我的活动基本上都是
<LinearLayout>
<LinearLayout>
<!-- THE HEADER AND A BUTTON -->
</LinearLayout>
<View>
<!-- A SEPARATION LINE -->
</View>
<ScrollView>
<!-- THE CONTENT -->
</ScrollView>
</LinearLayout>
动画始终设置为从左侧推入标题+行,然后从按钮推入内容。现在在特定的Activity
我看到行View
被放入ScrollView
(那里有一个RelativeLayout
,因为ScrollView
只能有一个private void animateHeaderAndContent(){
LinearLayout header = (LinearLayout) findViewById(R.id.overview_lin_0);
header.setAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_in_header));
ScrollView content = (ScrollView) findViewById(R.id.sv_overview_content);
content.setAnimation(AnimationUtils.loadAnimation(this, R.anim.push_up_in_content));
}
子)。
当我第一次设置动画时(行位置错误,一切正常):
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<LinearLayout
android:id="@+id/overview_lin_0"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
(...)
</LinearLayout>
<ScrollView android:id="@+id/sv_overview_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<RelativeLayout
android:id="@+id/rel_over"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<View
android:id="@+id/v_overview_line1"
android:layout_height="1dp"
android:layout_width="match_parent"
android:layout_marginBottom="10dp"
android:background="#FFFFFF"
/>
(...)
xml中的:
ScrollView content = (ScrollView) findViewById(R.id.sv_overview_content);
当我编辑代码和xml如下所示时,它在行private void animateHeaderAndContent(){
LinearLayout header = (LinearLayout) findViewById(R.id.overview_lin_0);
header.setAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_in_header));
View line = (View) findViewById(R.id.v_overview_line1);
line.setAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_in_header));
ScrollView content = (ScrollView) findViewById(R.id.sv_overview_content);
content.setAnimation(AnimationUtils.loadAnimation(this, R.anim.push_up_in_content));
}
给出了一个ClassCastException,它与之前完全相同。
代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<LinearLayout
android:id="@+id/overview_lin_0"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<View
android:layout_width="25dp"
android:layout_height="0dp"
/>
<TextView
style="@style/TextHeader"
android:id="@+id/tv_overview_name"
android:layout_width="0dp"
android:layout_weight="8"
android:gravity="center"
android:layout_height="wrap_content"
/>
<ImageButton style="@style/ImageButtonSmall"
android:layout_width="26dp"
android:layout_height="26dp"
android:src="@drawable/ic_action_delete"
android:contentDescription="@string/desc"
android:onClick="onClickDeleteBet"
/>
</LinearLayout>
<View
android:id="@+id/v_overview_line1"
android:layout_height="1dp"
android:layout_width="match_parent"
android:layout_marginBottom="10dp"
android:background="#FFFFFF"
/>
<ScrollView
android:id="@+id/sv_overview_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<RelativeLayout
android:id="@+id/rel_over"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
(...)
xml中的:
View
如何解释(因为在两种情况下都是相同的操作,除了中间有findViewById(...)
不应该干扰{{1}})?
答案 0 :(得分:1)
R
类中的引用可能未正确更新。这有时会发生。在eclipse中销毁生成的R
文件(在文件夹gen
下)。然后马上重启eclipse。
接下来,选择项目并点击Project
- &gt; Clean...
然后再次构建您的应用程序,并重新生成R
类。
我希望这会有所帮助。