Are there any ways to put view slightly outside its parent layout?

android view draw outside bounds
android:clipchildren vs cliptopadding
android frame layout multiple views
constraintlayout outside parent
android:clipchildren=false not working
android view out of screen
view overflow android
android:cliptooutline not found

It's a question about Android layouts. Here's what I eagerly want to get:

Dark-gray is a LinearLayout. Orange is layout X and then Green is a FrameLayout. I need to put Green outside its parent - layout X. The layout hierarchy described can't be changed. The only option is layout X - it could be whatever you want.

Any ideas?

You can't put the Green part in Layout X, because it can not be drawn outside its parents.

So, you should implements a RelativeLayout or FrameLayout (root Layout) as the parents of all of these Views.

And Put the Green View as the childView of the root Layout.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layout_root"
    android:layout_width="fill_parent"
    android:layout_height="200dp"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/layout_dark_grey"
        android:layout_width="100dp"
        android:layout_height="match_parent"
        android:orientation="vertical" >
    </LinearLayout>

    <LinearLayout
        android:id="@+id/layout_orange"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_toRightOf="@id/layout_dark_grey"
        android:orientation="vertical" >
    </LinearLayout>

    <RelativeLayout
        android:id="@+id/layout_green"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_centerVertical="true"
        android:layout_toLeftOf="300dp" >
    </RelativeLayout>

</RelativeLayout>

Android view animation outside the parent view boundary, to animate object like button, imageview etc. outside their parent view. the parent boundary, we have to set two property of all parent layout� To Animate this mic icon to outside the parent boundary, we have to set two property of all parent layout of view. viewGroup.setClipChildren(false) viewGroup.setClipToPadding(false)

Use -

android:clipChildren="false"
android:clipToPadding="false"

in every parent of your child view, then you put 'left margin' of your view to be negative,which will put your child view outside of parent view and will not even clip the view.

View, You can add views either from code or by specifying a tree of views in one or more XML These methods both return the location of the view relative to its parent. define how big a view wants to be within its parent (see Layout for more details.) You do not need to draw any pixels farther left, since those are outside of the� Instead, you need to call setMeasuredDimension (as required for an onMeasure override) and provide a new LayoutParams for your view, then call super.onMeasure. Remember, your LayoutParams are derived from your view's parent type, not your view's type.

Just add android:clipChildren="false" to the parent layout.

<?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="horizontal"
    android:clipChildren="false">

    <LinearLayout
        android:layout_marginLeft="-25dp"
        android:background="@color/colorGray"
        android:layout_width="100dp"
        android:layout_height="100dp"/>
    <LinearLayout
        android:gravity="center|left"
        android:layout_width="fill_parent"
        android:layout_height="100dp"
        android:background="@color/colorOrange">
        <LinearLayout
            android:layout_marginLeft="-25dp"
            android:background="@color/colorGreen"
            android:layout_width="50dp"
            android:layout_height="50dp"></LinearLayout>
    </LinearLayout>
</LinearLayout>

ViewGroup, In this chapter, we'll take a look at how the various CSS layout properties can be you no longer need to make every parent in the tree transfer the height of the viewport. case is for centering in old versions of IE, as you will see later in this chapter. While I haven't discussed it here, it worth learning a bit about transform :� Browse other questions tagged android android-layout view parent-child or ask your own question. The Overflow Blog Podcast – 25 Years of Java: the past to the present

5. CSS layout: tricks and layout techniques, The box-sizing property can make building CSS layouts easier and a lot more You could do a bit of arithmetic to figure out how many pixels you needed to trim off of an Click the border-box button to get all the children in the right place inside the parent. One of the most common areas where I see struggles is layout. Margin is the space added outside of the view's borders. It is the space from the edge of the view to its parent, as shown in the figure above. The following are commonly used margin attributes: android:layout_margin specifies a margin for all four sides of the view. android:layout_marginBottom specifies space outside the bottom side of this view.

Box Sizing, Whether you're attempting to read an article as it wriggles around in front of It's especially common with ads but can happen with any layout-affecting I also set a background color for the containers to suggest that something would go there. it can still do that, which isn't great, but it's slightly better than doing nothing. When the page expires and the user clicks on a row on the jquery table, the result is the Partial View, which has a message to say page is expired, please log back on .. However, the menu bar is still showing the incorrect 'logged on' menu bar, because its using the parent View Page as the layout. Any ideas how i can work around this ? Thanks

Content Jumping (and How To Avoid It), I have two views, and I'm using gravity on the parent view so that its children (i.e. “hugging” the two views inside and so they have no space to center themselves in. and instead set android:gravity=”right” in the new LinearLayout. no i haven't! that thread is useful, gives us a little more insight as to the� Yes, MATCH_PARENT and FILL_PARENT are just different constant names for the same integer value (-1 if you are curious) used to specify a View's layout mode within its parent. So why was MATCH_PARENT added? The Android team found that developers were misinterpreting FILL_PARENT to mean that a View would

Comments
  • I hate to say it, but the only way I can think of is to use a FrameLayout to wrap everything, have the dark gray and orange in a linear layout and then lay the green layout over the others. Which conflicts with your "The layout hierarchy described can't be changed". Just out of curiosity, why can't it?
  • I think you can specify negative values for margins. Have you tried that? I think it works for layouts where you can have overlap (two objects on a canvas, for example). I'm not near an any editor, otherwise I'd try it myself. I know for certain you can have overlap if you entire layout is a canvas, but I'm not sure in your situation.
  • @Barak: It's basically a table (table row is on picture) and in some circumstances I need to move a single cell outside it's normal position, so Table/TableRow layouts are the only I can use.
  • @Gophermofur: Have already tried, it doesn't work. The child view is either clipped or fills the entire parent (depending on parent's android:clipChildren)
  • Yeah, I figured that would be the case. Unfortunately, it looks like the green part needs to be part of the parent container (Dark Grey), but a LinearLayout wouldn't work to get what you need.
  • I know there are ways to achieve it by using more appropriate layouts instead of the ones that I use. I'm still curious if there's a way to do it in my case.
  • Negative margin is the winner!
  • Spot on! Cheers
  • @Denny - Unfortunately in my experience and other readings, clip seems to work differently depending on the android version (Why? I don't know. Maybe Google will make things work consistently some day) so it may not always be the solution being looked for.
  • beautiful, works like a charm.. you need to put these attributes on each and every parent of the view.
  • This should be the correct answer since it accomplished what the OP was looking for.