this is not my app, this is nordic app that put its source on github and I am trying to run the soutce on my machine. but i keep having this error :
03-07 07:12:13.641 12622-12622/com.noxel.apppaneladmintry2 E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.noxel.apppaneladmintry2, PID: 12622
java.lang.IllegalStateException: View can not be anchored to the the parent CoordinatorLayout
at android.support.design.widget.CoordinatorLayout$LayoutParams.resolveAnchorView(CoordinatorLayout.java:2522)
at android.support.design.widget.CoordinatorLayout$LayoutParams.findAnchorView(CoordinatorLayout.java:2491)
at android.support.design.widget.CoordinatorLayout.prepareChildren(CoordinatorLayout.java:619)
at android.support.design.widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:670)
at android.view.View.measure(View.java:17442)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135)
at android.view.View.measure(View.java:17442)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
at android.view.View.measure(View.java:17442)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
at android.view.View.measure(View.java:17442)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
at android.view.View.measure(View.java:17442)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2560)
at android.view.View.measure(View.java:17442)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2001)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1166)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1372)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1054)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5779)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
at android.view.Choreographer.doCallbacks(Choreographer.java:580)
at android.view.Choreographer.doFrame(Choreographer.java:550)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5257)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:921)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:716)
an this is the layout of my Mainactivity :
<?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/container"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
style="@style/HeaderBar"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
android:theme="@style/ActionBarThemeOverlay"
app:popupTheme="@style/ActionBarPopupThemeOverlay"
app:titleTextAppearance="@style/ActionBar.TitleText"/>
<android.support.design.widget.TabLayout
android:id="@+id/sliding_tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabSelectedTextColor="@color/tabSelectedTextColor"
app:tabTextColor="@color/tabTextColor"
app:tabIndicatorColor="@color/tabIndicatorColor"
app:tabGravity="fill"
app:tabMode="fixed"/>
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab_add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/fab_margin"
android:src="@drawable/fab_ic_add"
app:backgroundTint="@color/fab_normal"
app:layout_anchor="@+id/container"
app:layout_anchorGravity="bottom|right|end"
app:elevation="4dp"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/background_title"
android:layout_gravity="bottom|center"
android:layout_marginBottom="6dp"/>
</android.support.design.widget.CoordinatorLayout>
and this is my spash screen code:
public class SplashscreenActivity extends Activity {
/** Splash screen duration time in milliseconds */
private static final int DELAY = 1000;
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splashscreen);
// Jump to MainActivity after DELAY milliseconds
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
final Intent intent = new Intent(SplashscreenActivity.this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
intent.putExtra(MainActivity.OPENED_FROM_LAUNCHER, true);
startActivity(intent);
finish();
}
}, DELAY);
}
@Override
public void onBackPressed() {
// do nothing. Protect from exiting the application when splash screen is shown
}
}
and this is layout of my splash screen :
<merge xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".SplashscreenActivity" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="70dp"
android:scaleType="center"
android:src="@drawable/nordic_logo" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/background_title"
android:layout_gravity="bottom|center"
android:layout_marginBottom="6dp"/>
can anyone tell me how to solve this issue?
This started to happened in support design library v.23.2.0
compile 'com.android.support:design:23.2.0'
I know this started with v23.2.0 because my app was working fine before (v.23.1.2) and started to present same failure after update.
Error is simple:
One of your views is anchored to its parent Coordinator Layout. However, starting at v.23.2.0, this is no longer allowed.
I think the error is in your FAB:
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab_add"
...
app:layout_anchor="@+id/container"
... />
I believe that id/container
is a parent CoordinatorLayout
Fixing
Right way is change the layout_anchor
and use another view as anchor (parent Layout or any other view which is fixed to bottom of the screen).
The view to which the FAB is anchored must be a descendant view of the CoordinatorLayout.
And if the view is a layout, the FAB must not be inside the layout, otherwise the anchor gravity settings won't work. For example:
<android.support.design.widget.CoordinatorLayout
android:id="@+id/content_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
.
.
.
<FrameLayout
android:id="@+id/attachment_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/fab_margin_end"
android:layout_marginTop="@dimen/fab_margin_top"
android:scaleType="center"
android:src="@drawable/ic_action_save"
app:borderWidth="0dp"
app:elevation="@dimen/fab_elevation"
app:layout_anchor="@id/attachment_layout"
app:layout_anchorGravity="top|end"
app:rippleColor="@color/accent_highlight" />
</android.support.design.widget.CoordinatorLayout>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With