尽管声明,仍无法解决符号

时间:2018-03-15 21:16:38

标签: java android android-layout

我是Android的新手,我正在实施一个WebView应用程序,我可以在应用程序窗口中打开一个特定的网站。但是,在这段代码的最后一行我收到错误:

  

无法解析符号' imgHeader'

public class MainActivity extends AppCompatActivity {

private String postUrl = "https://api.androidhive.info/webview/index.html";
private WebView webView;
//private ProgressBar progressBar;
//private ImageView imgHeader;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar toolbar = findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    webView = (WebView) findViewById(R.id.webView);
    ProgressBar progressBar = (ProgressBar) findViewById(R.id.progressBar);
    ImageView imgHeader =  findViewById(R.id.backdrop);

    // initializing toolbar
    initCollapsingToolbar();

    webView.getSettings().setJavaScriptEnabled(true);
    webView.loadUrl(postUrl);
    webView.setHorizontalScrollBarEnabled(false);
}

/**
 * Initializing collapsing toolbar
 * Will show and hide the toolbar txtPostTitle on scroll
 */
private void initCollapsingToolbar() {
    final CollapsingToolbarLayout collapsingToolbar =
            (CollapsingToolbarLayout) findViewById(R.id.collapsing_toolbar);
    collapsingToolbar.setTitle(" ");
    AppBarLayout appBarLayout = (AppBarLayout) findViewById(R.id.appbar);
    appBarLayout.setExpanded(true);

    // hiding & showing the txtPostTitle when toolbar expanded & collapsed
    appBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
        boolean isShow = false;
        int scrollRange = -1;

        @Override
        public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
            if (scrollRange == -1) {
                scrollRange = appBarLayout.getTotalScrollRange();
            }
            if (scrollRange + verticalOffset == 0) {
                collapsingToolbar.setTitle("Web View");
                isShow = true;
            } else if (isShow) {
                collapsingToolbar.setTitle(" ");
                isShow = false;
            }
        }
    });

    // loading toolbar header image
    Glide.with(getApplicationContext()).load("https://api.androidhive.info/webview/nougat.jpg")
            .thumbnail(0.5f)
            .crossFade()
            .diskCacheStrategy(DiskCacheStrategy.ALL);
            .into(imgHeader);
}

}

我已经宣布过' imgHeader'变量,所以我不明白这个错误的原因。我的XML文件中也有正确的ID:

<?xml version="1.0" encoding="utf-8"?><android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
android:fitsSystemWindows="true">

<include
    layout="@layout/toolbar"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

<android.support.design.widget.AppBarLayout
    android:id="@+id/appbar"
    android:layout_width="match_parent"
    android:layout_height="12dp"
    android:fitsSystemWindows="true"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/collapsing_toolbar"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        app:contentScrim="?attr/colorPrimary"
        app:expandedTitleMarginEnd="64dp"
        app:expandedTitleMarginStart="48dp"
        app:expandedTitleTextAppearance="@android:color/transparent"
        app:layout_scrollFlags="scroll|exitUntilCollapsed">

        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">

            <ImageView
                android:id="@+id/backdrop"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:fitsSystemWindows="true"
                android:scaleType="centerCrop"
                app:layout_collapseMode="parallax"
                android:contentDescription="Contents"/>
        </RelativeLayout>

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:layout_collapseMode="pin"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

    </android.support.design.widget.CollapsingToolbarLayout>

</android.support.design.widget.AppBarLayout>

<include layout="@layout/content_main" />

<ProgressBar
    android:id="@+id/progressBar"
    style="@style/Widget.AppCompat.ProgressBar.Horizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="-7dp"
    android:indeterminate="true"
    app:layout_behavior="@string/appbar_scrolling_view_behavior" />

1 个答案:

答案 0 :(得分:1)

ImageView imgHeader =  findViewById(R.id.backdrop);
你的initCollapsingToolbar函数中的

。查找变量范围以找出原因。