Android : scroll view causing issue while displaying - android-layout

I have a constraint layout which has 2 child's , the top most is the cardView (androidX) and the next one is the scrollView.
Normally it work's fine , but when the scroll view has to many children's (like the one shown below) the view's start causing issues.
I can't seem to scroll to the top most child of scroll view nor the bottom most.
Thing's i have tried are :
Change card view to linearLayout (doesn't solve the issue)
add android:layout_marginTop="180dp" to the scroll view (hide's the last few child's)
change the constraints to point to parent for scroll view (caused cardview to overlap on top of scrollview)
I want the scroll view to start just below the card view and all it's children's should be visible no matter the child count.
How can i achieve this??
Scenario 1
Scenario 2
my code
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:contentDescription="#string/accessory_page"
android:padding="20dp">
<androidx.cardview.widget.CardView
android:id="#+id/cardView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="#+id/accessory"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="15dp"
android:text="#string/blank"
android:textAlignment="center"
android:textSize="24sp"
android:textStyle="bold|italic" />
</androidx.cardview.widget.CardView>
<ScrollView
android:id="#+id/body"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:importantForAccessibility="yes"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="#+id/cardView">
<LinearLayout
android:id="#+id/content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="#+id/acc456essory"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="15dp"
android:text="text1"
android:textAlignment="center"
android:textSize="24sp"
android:textStyle="bold|italic" />
<TextView
android:id="#+id/tex"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="15dp"
android:text="#string/pay"
android:textAlignment="center"
android:textSize="24sp"
android:textStyle="bold|italic" />
<TextView
android:id="#+id/access456ory"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="15dp"
android:text="#string/pay"
android:textAlignment="center"
android:textSize="24sp"
android:textStyle="bold|italic" />
<TextView
android:id="#+id/acce465ssory"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="15dp"
android:text="#string/pay"
android:textAlignment="center"
android:textSize="24sp"
android:textStyle="bold|italic" />
<TextView
android:id="#+id/a456ccessory"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="15dp"
android:text="#string/pay"
android:textAlignment="center"
android:textSize="24sp"
android:textStyle="bold|italic" />
<TextView
android:id="#+id/ac546c456essory"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="15dp"
android:text="#string/pay"
android:textAlignment="center"
android:textSize="24sp"
android:textStyle="bold|italic" />
<TextView
android:id="#+id/ac546ces56sory"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="15dp"
android:text="#string/pay"
android:textAlignment="center"
android:textSize="24sp"
android:textStyle="bold|italic" />
<TextView
android:id="#+id/acce546ssory"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="15dp"
android:text="#string/pay"
android:textAlignment="center"
android:textSize="24sp"
android:textStyle="bold|italic" />
<TextView
android:id="#+id/access568ory"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="15dp"
android:text="#string/pay"
android:textAlignment="center"
android:textSize="24sp"
android:textStyle="bold|italic" />
<TextView
android:id="#+id/acc6essory"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="15dp"
android:text="#string/pay"
android:textAlignment="center"
android:textSize="24sp"
android:textStyle="bold|italic" />
<TextView
android:id="#+id/ac54cessory"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="15dp"
android:text="#string/pay"
android:textAlignment="center"
android:textSize="24sp"
android:textStyle="bold|italic" />
<TextView
android:id="#+id/ac6cessory"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="15dp"
android:text="#string/pay"
android:textAlignment="center"
android:textSize="24sp"
android:textStyle="bold|italic" />
<TextView
android:id="#+id/accesso4ry"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="15dp"
android:text="#string/pay"
android:textAlignment="center"
android:textSize="24sp"
android:textStyle="bold|italic" />
<TextView
android:id="#+id/accewssory"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="15dp"
android:text="#string/pay"
android:textAlignment="center"
android:textSize="24sp"
android:textStyle="bold|italic" />
<TextView
android:id="#+id/actcessory"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="15dp"
android:text="#string/pay"
android:textAlignment="center"
android:textSize="24sp"
android:textStyle="bold|italic" />
<TextView
android:id="#+id/access980ory"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="15dp"
android:text="#string/pay"
android:textAlignment="center"
android:textSize="24sp"
android:textStyle="bold|italic" />
<TextView
android:id="#+id/acecessory"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="15dp"
android:text="#string/pay"
android:textAlignment="center"
android:textSize="24sp"
android:textStyle="bold|italic" />
<TextView
android:id="#+id/accesqsory"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="15dp"
android:text="Text(n-1)"
android:textAlignment="center"
android:textSize="24sp"
android:textStyle="bold|italic" />
<TextView
android:id="#+id/accesseory"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="15dp"
android:text="textN"
android:textAlignment="center"
android:textSize="24sp"
android:textStyle="bold|italic" />
</LinearLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>

code change to resolve the above issue
<ScrollView
android:id="#+id/body"
android:layout_width="match_parent"
android:layout_height="0dp"
android:importantForAccessibility="yes"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="#+id/cardView">
Thanks to #Muhammad Ammar for help

Related

Android Java - Make two containers side by side with percentage width

I have this scenario in an android page:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:background="#drawable/border">
<RelativeLayout
android:id="#+id/lbltvFirstContainer"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
app:layout_constraintWidth_default="percent"
app:layout_constraintWidth_percent="90" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView
android:id="#+id/lbltvFirstText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="4dp"
android:visibility="visible"
android:layout_gravity="left"
android:textSize="19dp"
android:textStyle="bold" />
<TextView
android:id="#+id/tvSecondText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="4dp"
android:visibility="visible"
android:layout_toRightOf="#+id/lbltvFirstText"
android:textColor="#color/green"
android:textSize="19dp"
android:textStyle="bold" />
<com.google.android.flexbox.FlexboxLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:flexDirection="row"
app:justifyContent="flex_end"
app:flexWrap="wrap"
app:layout_flexBasisPercent="50%"
app:alignItems="flex_start"
app:alignContent="flex_start"
app:showDividerVertical="middle"
app:dividerDrawable="#drawable/divider_flexbox">
<com.google.android.material.button.MaterialButton
android:id="#+id/btnButton"
android:background="#android:color/transparent"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_marginTop="-5dp"
app:icon="#drawable/btnButton"
app:iconTint="#null" />
<ImageView
android:id="#+id/first_icon"
android:src="#drawable/grey_24dp"
android:background="#android:color/transparent"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_weight="0.5"
android:layout_marginRight="4dp"
android:layout_marginTop="4dp"
android:layout_alignParentRight="true"/>
</com.google.android.flexbox.FlexboxLayout>
</RelativeLayout>
<RelativeLayout
android:id="#+id/elements_container"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<ImageView
android:id="#+id/lblThirdImage"
android:layout_width="32dp"
android:layout_height="32dp"
android:src="#drawable/icon_image"
android:layout_marginLeft="4dp"
android:layout_gravity="start" />
<TextView
android:id="#+id/tvThirdText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:padding="4dp"
android:layout_toRightOf="#+id/lblThirdImage"
android:gravity="start"
android:textSize="18dp" />
</RelativeLayout>
<com.google.android.flexbox.FlexboxLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:flexWrap="wrap"
app:alignItems="stretch"
app:alignContent="stretch"
app:showDividerVertical="middle"
app:dividerDrawable="#drawable/divider" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="#+id/lblFourImage"
android:layout_width="32dp"
android:layout_height="32dp"
android:src="#drawable/four_image"
android:visibility="visible"
android:layout_marginLeft="4dp"
android:layout_gravity="start" />
<TextView
android:id="#+id/tvFourText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:padding="4dp"
android:visibility="visible"
android:layout_toRightOf="#+id/lbltvFourImage"
android:gravity="start"
android:textSize="18dp" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="#+id/lbltvFiveImage"
android:layout_width="32dp"
android:layout_height="32dp"
android:visibility="visible"
android:layout_marginLeft="4dp"
android:layout_gravity="start"
android:src="#drawable/five_image" />
<TextView
android:id="#+id/tvFiveText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:padding="4dp"
android:visibility="visible"
android:layout_toRightOf="#+id/lbltvFiveImage"
android:gravity="start"
android:textSize="18dp" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="#+id/lbltvSixImage"
android:layout_width="32dp"
android:layout_height="32dp"
android:visibility="visible"
android:layout_marginLeft="4dp"
android:layout_gravity="start"
android:src="#drawable/six_image" />
<TextView
android:id="#+id/tvSixText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:padding="4dp"
android:visibility="visible"
android:layout_toRightOf="#+id/lbltvSixImage"
android:gravity="start"
android:textSize="18dp" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="#+id/lbltvSevenImage"
android:layout_width="32dp"
android:layout_height="32dp"
android:src="#drawable/seven_image"
android:visibility="visible"
android:layout_marginLeft="4dp"
android:layout_gravity="start" />
<TextView
android:id="#+id/tvSevenImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:padding="4dp"
android:visibility="visible"
android:layout_toRightOf="#+id/lbltvSevenImage"
android:gravity="start"
android:textSize="18dp" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="#+id/tvEightImage"
android:src="#drawable/eigth_image"
android:background="#android:color/transparent"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginRight="4dp"
android:layout_marginTop="10dp"
android:layout_alignParentRight="true"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="#+id/tvNineImage"
android:src="#drawable/nine_image"
android:background="#android:color/transparent"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginTop="10dp"
android:layout_alignParentRight="true"/>
<com.google.android.material.button.MaterialButton
android:id="#+id/lblTenImage"
android:background="#android:color/transparent"
android:layout_width="42dp"
android:layout_height="42dp"
app:icon="#drawable/ten_image"
app:iconTint="#null" />
</LinearLayout>
</com.google.android.flexbox.FlexboxLayout>
</RelativeLayout>
<RelativeLayout
android:id="#+id/lbltvSecondContainer"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
app:layout_constraintWidth_default="percent"
app:layout_constraintWidth_percent="10">
</RelativeLayout>
</LinearLayout>
And I am trying to have two containers side by side, lbltvFirstContainer and lbltvSecondContainer, where I would set width by percentage so in the second container I can put just a ">" like a button to go to another page so after searching I found somewhere to use those app:layout_constraintWidth_default="percent" and app:layout_constraintWidth_percent="10" but looks like that doesn't work.... do you have a direction to make those two main containers with percentage width? Thanks in advance!
Cheers
Edit:
after #Cheticamp 's suggest I changed as :
<?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"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:background="#drawable/border">
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.Guideline
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="#+id/left_guideline"
app:layout_constraintGuide_percent=".80"
android:orientation="horizontal" />
<RelativeLayout
android:id="#+id/left_container"
android:layout_width="0dp"
android:layout_height="match_parent"
app:layout_constraintEnd_toStartOf="#+id/left_guideline"
app:layout_constraintStart_toStartOf="parent">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView
android:id="#+id/lbltvFirstText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="4dp"
android:visibility="visible"
android:layout_gravity="left"
android:textSize="19dp"
android:textStyle="bold"
android:text="Matricola:" />
<TextView
android:id="#+id/tvSecondText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="4dp"
android:visibility="visible"
android:layout_toRightOf="#+id/lbltvFirstText"
android:textColor="#color/area_frg"
android:textSize="19dp"
android:textStyle="bold" />
<com.google.android.flexbox.FlexboxLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:flexDirection="row"
app:justifyContent="flex_end"
app:flexWrap="wrap"
app:layout_flexBasisPercent="50%"
app:alignItems="flex_start"
app:alignContent="flex_start"
app:showDividerVertical="middle"
app:dividerDrawable="#drawable/divider_flexbox">
<com.google.android.material.button.MaterialButton
android:id="#+id/btnButton"
android:background="#android:color/transparent"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_marginTop="-5dp"
app:icon="#drawable/btnButton"
app:iconTint="#null" />
<ImageView
android:id="#+id/first_icon"
android:src="#drawable/grey_24dp"
android:background="#android:color/transparent"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_weight="0.5"
android:layout_marginRight="4dp"
android:layout_marginTop="4dp"
android:layout_alignParentRight="true"/>
</com.google.android.flexbox.FlexboxLayout>
</RelativeLayout>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<ImageView
android:id="#+id/lblThirdImage"
android:layout_width="32dp"
android:layout_height="32dp"
android:src="#drawable/wifi"
android:layout_marginLeft="4dp"
android:layout_gravity="start" />
<TextView
android:id="#+id/tvThirdText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:padding="4dp"
android:layout_toRightOf="#+id/lblThirdImage"
android:gravity="start"
android:textSize="18dp" />
</RelativeLayout>
<com.google.android.flexbox.FlexboxLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:flexWrap="wrap"
app:alignItems="stretch"
app:alignContent="stretch"
app:showDividerVertical="middle"
app:dividerDrawable="#drawable/divider" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="#+id/lblFourImage"
android:layout_width="32dp"
android:layout_height="32dp"
android:src="#drawable/thermo"
android:visibility="visible"
android:layout_marginLeft="4dp"
android:layout_gravity="start" />
<TextView
android:id="#+id/tvFourText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:padding="4dp"
android:visibility="visible"
android:layout_toRightOf="#+id/lblFourImage"
android:gravity="start"
android:textSize="18dp" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="#+id/lbltvFiveImage"
android:layout_width="32dp"
android:layout_height="32dp"
android:visibility="visible"
android:layout_marginLeft="4dp"
android:layout_gravity="start"
android:src="#drawable/full_batt" />
<TextView
android:id="#+id/tvFiveText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:padding="4dp"
android:visibility="visible"
android:layout_toRightOf="#+id/lbltvFiveImage"
android:gravity="start"
android:textSize="18dp" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="#+id/lbltvSixImage"
android:layout_width="32dp"
android:layout_height="32dp"
android:visibility="visible"
android:layout_marginLeft="4dp"
android:layout_gravity="start"
android:src="#drawable/power" />
<TextView
android:id="#+id/tvSixText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:padding="4dp"
android:visibility="visible"
android:layout_toRightOf="#+id/lbltvSixImage"
android:gravity="start"
android:textSize="18dp" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="#+id/lbltvSevenImage"
android:layout_width="32dp"
android:layout_height="32dp"
android:src="#drawable/gsm"
android:visibility="visible"
android:layout_marginLeft="4dp"
android:layout_gravity="start" />
<TextView
android:id="#+id/tvSevenText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:padding="4dp"
android:visibility="visible"
android:layout_toRightOf="#+id/lbltvSevenImage"
android:gravity="start"
android:textSize="18dp" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="#+id/tvEightImage"
android:src="#drawable/eight_image"
android:background="#android:color/transparent"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginRight="4dp"
android:layout_marginTop="10dp"
android:layout_alignParentRight="true"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="#+id/tvNineImage"
android:src="#drawable/nine_image"
android:background="#android:color/transparent"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginTop="10dp"
android:layout_alignParentRight="true"/>
<com.google.android.material.button.MaterialButton
android:id="#+id/lblTenImage"
android:background="#android:color/transparent"
android:layout_width="42dp"
android:layout_height="42dp"
app:icon="#drawable/play"
app:iconTint="#null" />
</LinearLayout>
</com.google.android.flexbox.FlexboxLayout>
</RelativeLayout>
<androidx.constraintlayout.widget.Guideline
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="#+id/right_guideline"
app:layout_constraintGuide_percent=".20"
android:orientation="horizontal" />
<RelativeLayout
android:id="#+id/right_container"
android:layout_width="0dp"
android:layout_height="match_parent"
app:layout_constraintEnd_toStartOf="#+id/right_guideline"
app:layout_constraintStart_toStartOf="parent">
</RelativeLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
using those ConstraintLayout but seems it keeps returning this error:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.mytestapp, PID: 32175
java.lang.AssertionError: LEFT
at androidx.constraintlayout.solver.widgets.Guideline.getAnchor(Guideline.java:147)
at androidx.constraintlayout.solver.widgets.ConstraintWidget.immediateConnect(ConstraintWidget.java:1620)
at androidx.constraintlayout.widget.ConstraintLayout.applyConstraintsFromLayoutParams(ConstraintLayout.java:1359)
at androidx.constraintlayout.widget.ConstraintLayout.setChildrenConstraints(ConstraintLayout.java:1253)
at androidx.constraintlayout.widget.ConstraintLayout.updateHierarchy(ConstraintLayout.java:1149)
at androidx.constraintlayout.widget.ConstraintLayout.onMeasure(ConstraintLayout.java:1685)
at android.view.View.measure(View.java:25532)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6957)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:842)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:721)
at android.view.View.measure(View.java:25532)
at android.widget.ListView.measureScrapChild(ListView.java:1350)
at android.widget.ListView.measureHeightOfChildren(ListView.java:1419)
at android.widget.ListView.onMeasure(ListView.java:1323)
at android.view.View.measure(View.java:25532)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6957)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at android.view.View.measure(View.java:25532)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6957)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at android.view.View.measure(View.java:25532)
at androidx.recyclerview.widget.RecyclerView$LayoutManager.measureChildWithMargins(RecyclerView.java:9384)
at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1653)
at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1587)
at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:665)
at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:4134)
at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:3851)
at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4404)
at android.view.View.layout(View.java:22900)
at android.view.ViewGroup.layout(ViewGroup.java:6389)
at androidx.viewpager2.widget.ViewPager2.onLayout(ViewPager2.java:527)
at android.view.View.layout(View.java:22900)
at android.view.ViewGroup.layout(ViewGroup.java:6389)
at com.google.android.material.appbar.HeaderScrollingViewBehavior.layoutChild(HeaderScrollingViewBehavior.java:148)
at com.google.android.material.appbar.ViewOffsetBehavior.onLayoutChild(ViewOffsetBehavior.java:43)
at com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior.onLayoutChild(AppBarLayout.java:2003)
at androidx.coordinatorlayout.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:918)
at android.view.View.layout(View.java:22900)
at android.view.ViewGroup.layout(ViewGroup.java:6389)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at android.view.View.layout(View.java:22900)
at android.view.ViewGroup.layout(ViewGroup.java:6389)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
at android.view.View.layout(View.java:22900)
at android.view.ViewGroup.layout(ViewGroup.java:6389)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at android.view.View.layout(View.java:22900)
at android.view.ViewGroup.layout(ViewGroup.java:6389)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
E/AndroidRuntime: at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
at android.view.View.layout(View.java:22900)
at android.view.ViewGroup.layout(ViewGroup.java:6389)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at com.android.internal.policy.DecorView.onLayout(DecorView.java:831)
at android.view.View.layout(View.java:22900)
at android.view.ViewGroup.layout(ViewGroup.java:6389)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:3619)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3087)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2060)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8430)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:972)
at android.view.Choreographer.doCallbacks(Choreographer.java:796)
at android.view.Choreographer.doFrame(Choreographer.java:731)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:957)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:250)
at android.app.ActivityThread.main(ActivityThread.java:7886)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:970)
so I re-checked what I typed in XML and seems it looks ok but maybe shall I have forgot or mistaken something ?
Thanks!
Cheers!
Edit 2 :
Hello #Cheticamp , following your suggest I started from scratch to create a ConstraintLayout with two guidelines dimensioned by percent as follow:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.Guideline
android:id="#+id/test_left_guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.50" />
<androidx.constraintlayout.widget.Guideline
android:id="#+id/test_right_guideline"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.20"
app:layout_constraintLeft_toEndOf="#id/test_left_guideline" />
</androidx.constraintlayout.widget.ConstraintLayout>
so it's supposed to see in Design those two guidelines side by side since I put app:layout_constraintLeft_toEndOf="#id/test_left_guideline" so after I could put two RelativeLayouts as containers following those guidelines but it looks like both guidelines starts from the left side of the parent window... which attribute I should set to make those two guidelines side by side? Thanks in advance! Cheers

Android GridView: two colulmns of equal width and height centred in the parent

How can such a simple requirement be so impossible?
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="3">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="6dp"
android:layout_weight="1"
android:orientation="vertical">
<GridLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="18dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_weight="1"
android:paddingLeft="12dp"
android:background="#drawable/box_background"
android:columnCount="2"
>
<TextView
android:layout_gravity="center"
android:padding="4dp"
android:text="text"
android:textSize="24dp"
/>
<TextView
android:layout_gravity="center"
android:padding="4dp"
android:text="text"
android:textSize="24dp"
/>
<TextView
android:layout_gravity="center"
android:padding="4dp"
android:text="text"
android:textSize="24dp"
/>
<TextView
android:layout_gravity="center"
android:padding="4dp"
android:text="text"
android:textSize="24dp"
/>
<TextView
android:layout_gravity="center"
android:padding="4dp"
android:text="text"
android:textSize="24dp"
/>
<TextView
android:layout_gravity="center"
android:padding="4dp"
android:text="text"
android:textSize="24dp"
/>
</GridLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:background="#fff"
android:paddingLeft="6dp"
android:paddingRight="6dp"
android:text="Box title" />
</RelativeLayout>
</LinearLayout>
Produces this rubbish:
WTF is the gap above the third row?
Is it possible -- I swear it isn't -- to get two centred columns with the rows evenly spaced?
Use this add android:layout_columnWeight="1" to gridlayout childrens
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="3">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="6dp"
android:layout_weight="1"
android:orientation="vertical">
<GridLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="#+id/grid_layout"
android:columnCount="2"
android:layout_below="#id/title"
android:orientation="horizontal"
android:useDefaultMargins="true"
android:alignmentMode="alignBounds"
>
<TextView
android:layout_gravity="center_horizontal"
android:padding="4dp"
android:gravity="center"
android:text="text"
android:layout_columnWeight="1"
android:textSize="20sp"
/>
<TextView
android:layout_gravity="center_horizontal"
android:padding="4dp"
android:gravity="center"
android:text="text"
android:layout_columnWeight="1"
android:textSize="20sp"
/>
<TextView
android:layout_gravity="center_horizontal"
android:padding="4dp"
android:gravity="center"
android:text="text"
android:layout_columnWeight="1"
android:textSize="20sp"
/>
<TextView
android:layout_gravity="center_horizontal"
android:padding="4dp"
android:gravity="center"
android:text="text"
android:layout_columnWeight="1"
android:textSize="20sp"
/>
<TextView
android:layout_gravity="center_horizontal"
android:padding="4dp"
android:gravity="center"
android:text="text"
android:layout_columnWeight="1"
android:textSize="20sp"
/>
<TextView
android:layout_gravity="center_horizontal"
android:padding="4dp"
android:gravity="center"
android:text="text"
android:layout_columnWeight="1"
android:textSize="20sp"
/>
</GridLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:background="#fff"
android:paddingLeft="6dp"
android:id="#+id/title"
android:textSize="16sp"
android:paddingRight="6dp"
android:text="Box title" />
</RelativeLayout>
</LinearLayout>
</LinearLayout>
Output :

Floating action button are not aligned properly in Jelly bean (API 18), working fine 18 and above

I created layout with floating action button. There is one floating action button (called filter) by which i show up two other FABs.
Issue is about space between FABs. Gap is showing more in API level 18 and below.
Layout is working good in API level 19 and above but it is not showing properly in below 19, there is too much gap between floating action button, not sure what is issue here. Please let me know if i need spacial handling for 18 and below.
enter code here
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#color/bottom_bar_color"
android:paddingTop="#dimen/activity_vertical_margin">
<android.support.v4.widget.SwipeRefreshLayout
android:id="#+id/pull_to_refresh_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.stylzq.widget.StylzQRecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="#+id/images_data_list_frag_rv"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</android.support.v4.widget.SwipeRefreshLayout>
<android.support.design.widget.FloatingActionButton
android:id="#+id/go_to_top_fab"
android:layout_width="52dp"
android:layout_height="52dp"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginBottom="130dp"
android:layout_marginRight="15dp"
android:clickable="false"
android:src="#drawable/go_to_top"
android:visibility="gone"
app:backgroundTint="#color/colorPrimary"
app:borderWidth="0dp"
app:elevation="6dp"
app:layout_anchorGravity="bottom|right"
app:pressedTranslationZ="12dp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="190dp"
android:gravity="end"
android:orientation="vertical">
<LinearLayout
android:id="#+id/ll_home_lyt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="#dimen/dimen_6"
android:visibility="gone">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginRight="10dp"
android:background="#drawable/fab_text_background"
android:padding="#dimen/dimen_3"
android:text=" Home "
android:textColor="#color/white"
android:textSize="16sp" />
<android.support.design.widget.FloatingActionButton
android:id="#+id/fab_home_api"
android:layout_width="52dp"
android:layout_height="52dp"
android:layout_marginTop="#dimen/dimen_6"
android:layout_marginRight="16dp"
android:src="#drawable/ic_home"
app:backgroundTint="#color/colorPrimary"
app:elevation="6dp"
app:pressedTranslationZ="12dp"
app:rippleColor="#color/colorPrimaryLight" />
</LinearLayout>
<LinearLayout
android:id="#+id/celebs_lyt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="#dimen/dimen_6"
android:visibility="gone">
<TextView
android:id="#+id/celeb_TV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginRight="10dp"
android:background="#drawable/fab_text_background"
android:padding="#dimen/dimen_3"
android:text=" Celebrity "
android:textColor="#color/white"
android:textSize="16sp" />
<android.support.design.widget.FloatingActionButton
android:id="#+id/celebs_api_fab"
android:layout_width="52dp"
android:layout_height="52dp"
android:layout_marginRight="16dp"
android:src="#drawable/ic_celeb"
app:backgroundTint="#color/colorPrimary"
app:elevation="6dp"
app:pressedTranslationZ="12dp"
app:rippleColor="#color/colorPrimaryLight" />
</LinearLayout>
<LinearLayout
android:id="#+id/popular_lyt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="#dimen/dimen_6"
android:orientation="horizontal"
android:visibility="gone">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginRight="10dp"
android:background="#drawable/fab_text_background"
android:padding="#dimen/dimen_3"
android:text=" Popular "
android:textColor="#color/white"
android:textSize="16sp" />
<android.support.design.widget.FloatingActionButton
android:id="#+id/popular_api_fab"
android:layout_width="52dp"
android:layout_height="52dp"
android:layout_marginRight="16dp"
android:src="#drawable/ic_popular"
app:backgroundTint="#color/colorPrimary"
app:elevation="6dp"
app:pressedTranslationZ="12dp"
app:rippleColor="#color/colorPrimaryLight" />
</LinearLayout>
</LinearLayout>
<android.support.design.widget.FloatingActionButton
android:id="#+id/api_filter_fab"
android:layout_width="52dp"
android:layout_height="52dp"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_marginBottom="130dp"
android:layout_marginRight="16dp"
android:src="#drawable/ic_filter"
app:backgroundTint="#color/colorPrimary"
app:borderWidth="0dp"
app:elevation="6dp"
app:layout_anchorGravity="bottom|right"
app:pressedTranslationZ="12dp"
app:rippleColor="#color/colorPrimaryLight" />
</RelativeLayout>

How do I remove the extra space in this recyclerview element in Android?

I'm implementing a Recycler View in Android to create a list, but for some reason I see a space in between two elements, and I'm not able to pinpoint the error location. As to why is this happening, my guess is on the row element XML.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:cardview1="http://schemas.android.com/apk/res-auto"
android:id="#+id/row_top_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v7.widget.CardView
android:id="#+id/pos_cv"
android:layout_width="match_parent"
android:layout_height="72dp"
android:clickable="true"
cardview1:cardCornerRadius="6dp"
cardview1:cardElevation="4dp"
cardview1:cardMaxElevation="6dp">
<TextView
android:id="#+id/manager1"
android:layout_width="220dp"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:layout_marginTop="15dp"
android:text="Store Manager/Branch"
android:textSize="14sp"
android:textStyle="bold" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="70dp"
android:orientation="horizontal">
<TextView
android:id="#+id/retail"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:layout_marginTop="30dp"
android:text="Abc Retail"
android:textSize="10sp" />
<View
android:layout_width="170dp"
android:layout_height="match_parent" />
<TextView
android:id="#+id/amount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:text="25,000"
android:textColor="#color/colorDarkPink"
android:textSize="14sp"
android:textStyle="bold" />
</LinearLayout>
<TextView
android:id="#+id/address"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:layout_marginTop="50dp"
android:text="Abc Retail"
android:textSize="10sp" />
</android.support.v7.widget.CardView>
RecyclerView
<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/list_view_header_ll"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:weightSum="5"
android:background="#color/colorDarkPink"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Top 3 Performers"
android:textStyle="bold"
android:textColor="#color/colorPrimaryLight"
android:layout_weight="3"
android:textSize="16sp"
android:lines="1"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Sales"
android:textStyle="bold"
android:textColor="#color/colorPrimaryLight"
android:layout_weight="2"
android:textSize="16sp"
android:lines="1"
/>
</LinearLayout>
<android.support.v7.widget.RecyclerView
android:id="#+id/performer_lv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="#color/colorTransparent"
android:layout_marginTop="16dp"
android:dividerHeight="4dp"
/>
It is because of recycler view height. Try to change recyclerview height to wrap_content.And in cardview layout in linear-layout use height wrap_content.
try this code for your cardview:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:cardview1="http://schemas.android.com/apk/res-auto"
android:id="#+id/row_top_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<android.support.v7.widget.CardView
android:id="#+id/pos_cv"
android:layout_width="match_parent"
android:layout_height="72dp"
android:clickable="true"
android:layout_marginBottom="10dp"
cardview1:cardCornerRadius="6dp"
cardview1:cardElevation="4dp"
cardview1:cardMaxElevation="6dp">
<TextView
android:id="#+id/manager1"
android:layout_width="220dp"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:layout_marginTop="15dp"
android:text="Store Manager/Branch"
android:textSize="14sp"
android:textStyle="bold" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="70dp"
android:orientation="horizontal">
<TextView
android:id="#+id/retail"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:layout_marginTop="30dp"
android:text="Abc Retail"
android:textSize="10sp" />
<View
android:layout_width="170dp"
android:layout_height="match_parent" />
<TextView
android:id="#+id/amount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:text="25,000"
android:textColor="#color/colorDarkPink"
android:textSize="14sp"
android:textStyle="bold" />
</LinearLayout>
<TextView
android:id="#+id/address"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:layout_marginTop="50dp"
android:text="Abc Retail"
android:textSize="10sp" />
</android.support.v7.widget.CardView>
</LinearLayout>
Try to decrease your values
android:layout_height="50dp"
if it will not work try to decrease values in other views

custom class marquee text restarts while changing another text view in a complex layout

I have own implementation of marquee class since the user can decide the marquee behavior (No scroll, scroll once, scroll repeat) for the text in my music app. The problem arise whenever user starts to play the songs since it continuously update timer text (id:tv_playtime) in the layout.
<?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">
<RelativeLayout
android:id="#+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<RelativeLayout
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:clickable="true"
android:onClick="onButtonHomeClick">
<ImageView
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
/>
<ImageView
android:layout_width="64.67dp"
android:layout_height="25.33dp"
android:layout_alignParentTop="true"
android:layout_marginLeft="2dp"
android:background="#null"
android:duplicateParentState="true"
android:scaleType="fitStart"
android:visibility="gone" />
</RelativeLayout>
<!--home buttons-->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Media Player"
android:textColor="#color/white"
android:textSize="20dp" />
<ImageView
android:id="#+id/iv_settings_btn_passenger"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
/>
</RelativeLayout>
<!--media player home-->
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="36dp"
>
<ImageView
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:tint="#color/white"
android:visibility="invisible" />
<ImageView
android:layout_width="36dp"
android:layout_height="36dp"
/>
<ImageView
android:layout_width="36dp"
android:layout_height="36dp"
/>
<ImageView
android:layout_width="36dp"
android:layout_height="36dp"
/>
</RelativeLayout>
<!-- playing indicator-->
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="370dp"
>
<RelativeLayout
android:layout_width="240dp"
android:layout_height="240dp"
android:layout_centerInParent="true"
android:layout_alignParentTop="true">
<ImageView
android:layout_width="240dp"
android:layout_height="240dp"
/>
</RelativeLayout>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="130dp"
android:layout_marginTop="5dp">
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:visibility="gone"/>
<ImageView
android:layout_width="30dp"
android:layout_height="24dp"
android:visibility="gone"/>
<ImageView
android:layout_width="30dp"
android:layout_height="24dp"
android:visibility="gone"/>
<myClass.MarqueeTextView
android:id="#+id/marqueetext1"
android:layout_width="match_parent"
android:layout_height="30dp"
android:layout_centerInParent="true"
android:layout_marginLeft="60dp"
android:layout_marginRight="60dp"
android:clickable="true"
android:ellipsize="marquee"
android:focusable="true"
android:marqueeRepeatLimit="0"
android:scrollHorizontally="true"
android:singleLine="true"
android:text="Song Name"
android:textColor="#android:color/white"
android:textSize="24dp" />
<myClass.MarqueeTextView
android:id="#id/marqueetext2"
android:layout_width="match_parent"
android:layout_height="20dp"
android:layout_below="#+id/marqueetext1"
android:layout_centerInParent="true"
android:layout_centerVertical="true"
android:layout_marginLeft="60dp"
android:layout_marginRight="60dp"
android:clickable="true"
android:ellipsize="marquee"
android:focusable="true"
android:marqueeRepeatLimit="0"
android:scrollHorizontally="true"
android:singleLine="true"
android:text="Artist Name"
android:textColor="#android:color/white"
android:textSize="18dp" />
<myClass.MarqueeTextView
android:id="#id/marqueetext3"
android:layout_width="150dp"
android:layout_height="20dp"
android:layout_alignParentBottom="true"
android:layout_below="#+id/marqueetext2"
android:layout_marginLeft="60dp"
android:layout_marginTop="8dp"
android:clickable="true"
android:ellipsize="marquee"
android:focusable="true"
android:marqueeRepeatLimit="0"
android:scrollHorizontally="true"
android:singleLine="true"
android:text="Album Name"
android:textColor="#color/white"
android:textSize="18dp"/>
<TextView
android:id="#+id/tv_playtime"
android:layout_width="wrap_content"
android:layout_height="20dp"
android:layout_alignParentRight="true"
android:layout_below="#+id/marqueetext2"
android:layout_marginRight="20dp"
android:layout_marginTop="8dp"
android:text="00.00"
android:textColor="#color/white"
android:textSize="18dp" />
</RelativeLayout>
</RelativeLayout>
<!--media player tracks-->
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="70dip"
android:visibility="gone">
<ImageView
android:layout_width="30dip"
android:layout_height="30dip"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_marginLeft="14dip"
/>
<myClass.MarqueeTextView
android:layout_width="match_parent"
android:layout_height="30dip"
android:layout_alignParentBottom="true"
android:layout_marginLeft="14dip"
android:layout_marginRight="5dip"
android:ellipsize="marquee"
android:marqueeRepeatLimit="0"
android:scrollHorizontally="true"
android:singleLine="true"
android:textSize="20sp"
android:textStyle="bold" />
</RelativeLayout>
<!--mood-->
<myClass.GestureView
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
<!--gestures-->
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="44dp"
android:layout_alignParentBottom="true"
>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="16dp">
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="28dp"
android:layout_alignParentBottom="true"
>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="28dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="20dp"
android:layout_alignParentRight="true"
android:layout_marginLeft="50dp"
android:layout_marginRight="20dp"
android:text="00:00"
android:textColor="#android:color/white"
android:textSize="18dp"
android:visibility="gone" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="7dip"
android:text="03:50"
android:textColor="#android:color/white"
android:textSize="14dp"
android:textStyle="bold"
android:visibility="gone" />
<SeekBar
style="#style/seekBarMyStyle"
android:layout_width="match_parent"
android:layout_height="16dp"
android:layout_alignParentBottom="true"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:maxHeight="2dp"
android:minHeight="2dp"
android:visibility="visible" />
</RelativeLayout>
</RelativeLayout>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="26dip"
android:layout_alignParentTop="true">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:shadowColor="#color/text_shadow_color"
android:shadowDx="2.5"
android:shadowDy="2.5"
android:shadowRadius="0.01"
android:text="06:18"
android:textColor="#color/white"
android:textSize="15sp"
android:textStyle="bold" />
<ImageView
android:layout_width="26dip"
android:layout_height="match_parent"
android:layout_centerVertical="true"
/>
<ImageView
android:layout_width="26dip"
android:layout_height="match_parent"
android:layout_centerVertical="true"
android:layout_toLeftOf="#id/iv_mp_battery"
android:visibility="gone" />
<ImageView
android:layout_width="26dip"
android:layout_height="match_parent"
android:layout_centerVertical="true"
android:visibility="gone" />
<ImageView
android:layout_width="26dip"
android:layout_height="match_parent"
android:layout_centerVertical="true"
/>
<ImageView
android:layout_width="86dip"
android:layout_height="match_parent"
android:layout_centerVertical="true"
android:layout_toLeftOf="#id/iv_mp_signal"
/>
<ImageView
android:layout_width="86dip"
android:layout_height="match_parent"
android:layout_centerVertical="true"
/>
<ImageView
android:layout_width="86dip"
android:layout_height="match_parent"
android:layout_centerVertical="true"
/>
<ImageView
android:layout_width="86dip"
android:layout_height="match_parent"
android:layout_centerVertical="true"
/>
<ImageView
android:layout_width="86dip"
android:layout_height="match_parent"
android:layout_centerVertical="true"
/>
</RelativeLayout>
</RelativeLayout>
</RelativeLayout>
<LinearLayout
android:background="#color/darkbackgroundcoloralpha"
android:layout_width="match_parent"
android:layout_height="176dp"
android:layout_marginTop="50dp"
android:orientation="vertical"
android:visibility="gone" />
</FrameLayout>
I want to control the scrolling behavior of marqueetext1 here, which is working fine when the song is paused (Since timer text field is not updating).
I've tried similar problems but none of them are working for me
TextView restarts Marquee when changing another TextView in same LinearLayout
Setting of TextView stops marquee scrolling of other TextView
Android, RelativeLayout restarts Marquee-TextView when changing ImageView in same RelativeLayout
Note: Am using gestures for media player control (Next, previous, play, pause)
My assumption is its happening because of the layout since I've done a through debugging in custom Marquee class whose properties are not affecting the marquee restart here. I've override onFocusChanged, onWindowFocusChanged and isFocused methods in my derived Marquee class to make the Textview all focused.What am missing here?
My timer was overlapping on marquee text fields; so limiting the width of the timer text view solved the issue.
<TextView
android:id="#+id/tv_playtime"
android:layout_width="50dp"
android:layout_height="20dp"
android:layout_alignParentRight="true"
android:layout_below="#+id/marqueetext2"
android:layout_marginRight="20dp"
android:layout_marginTop="8dp"
android:text="00.00"
android:textColor="#color/white"
android:textSize="18dp" />

Resources