我将View对象与xml文件连接起来。但是当我尝试编译时,“错误:链接文件资源失败。
在" ~ = findIdByView(R.id.~);"
中,R用红色着色。但我觉得我做得很好。我不知道如何解决它。
方案
我正在尝试在MainActivity中创建2个LinearLayouts。 (一个用于WebView,另一个用于textView。) 我使用textView将一些动画效果应用到布局。
activity_main.xml中
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<LinearLayout
android:id="@+id/background"
android:layout_width="match_parent"
android:layout_height="459dp"
android:layout_gravity="bottom|center_horizontal"
android:orientation="vertical">
<WebView
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
<LinearLayout
android:id="@+id/page"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_gravity="top"
android:visibility="gone">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="tab"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top|center_horizontal">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Open"
android:onClick="onButton1Clicked"/>
</LinearLayout>
</FrameLayout>
MainActivity.java
package com.tistory.jaehoonx2.doitmission_08;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.LinearLayout;
public class MainActivity extends AppCompatActivity {
boolean isPageOpen = false;
Animation translateTopAnim;
Animation translateBottomAnim;
LinearLayout page;
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
page = (LinearLayout) findViewById(R.id.page); // Every "R" in onCreate() is colored red....
translateTopAnim = AnimationUtils.loadAnimation(this, R.anim.translate_top);
translateBottomAnim = AnimationUtils.loadAnimation(this, R.anim.translate_bottom);
SlidingPageAnimationListener animListener = new SlidingPageAnimationListener();
translateTopAnim.setAnimationListener(animListener);
translateBottomAnim.setAnimationListener(animListener);
}
public void onButton1Clicked(View v){
if(isPageOpen) {
page.startAnimation(translateTopAnim);
} else {
page.setVisibility(View.VISIBLE);
page.startAnimation(translateBottomAnim);
}
}
private class SlidingPageAnimationListener implements Animation.AnimationListener {
@Override
public void onAnimationStart(Animation animation) {}
@Override
public void onAnimationEnd(Animation animation) {
if(isPageOpen) {
page.setVisibility(View.INVISIBLE);
button.setText("Open");
isPageOpen = false;
} else {
button.setText("Close");
isPageOpen = true;
}
}
@Override
public void onAnimationRepeat(Animation animation) {}
}
}
translate_top.xml
(除了一些数字,translate_bottom.xml几乎相同):
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromYDelta="0%p"
android:toYDelta="100%p"
android:duration="500"
android:reapeatCount="0"
android:fillAfter="true"
/>
</set>
答案 0 :(得分:0)
问题应该是索引。
清理您的项目。
转到Build - &gt;在你的android工作室清理项目。
如果它仍然存在。
转到文件 - &gt;无效缓存/重启
答案 1 :(得分:0)
这是因为您在android:reapeatCount
中使用了translate_top.xml
的错误属性。它应该是android:repeatCount
。所以,你需要修复它并改为这样的东西:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromYDelta="0%p"
android:toYDelta="100%p"
android:duration="500"
android:repeatCount="0"
android:fillAfter="true"
/>
</set>