My code was working fine but suddenly design is not visible, errors are:-
java.lang.NullPointerException
at android.content.res.Resources_Theme_Delegate.obtainStyledAttributes(Resources_Theme_Delegate.java:74)
at android.content.res.Resources$Theme.obtainStyledAttributes(Resources.java:1610)
at android.content.Context.obtainStyledAttributes(Context.java:817)
at android.widget.TextView.setTextAppearance(TextView.java:3910)
at androidx.appcompat.widget.AppCompatTextView.setTextAppearance(AppCompatTextView.java:211)
at android.widget.TextView.setTextAppearance(TextView.java:3899)
at androidx.core.widget.TextViewCompat.setTextAppearance(TextViewCompat.java:289)
at com.google.android.material.tabs.TabLayout$TabView.update(TabLayout.java:2745)
at com.google.android.material.tabs.TabLayout$TabView.setTab(TabLayout.java:2686)
at com.google.android.material.tabs.TabLayout.createTabView(TabLayout.java:1657)
at com.google.android.material.tabs.TabLayout.newTab(TabLayout.java:952)
at com.google.android.material.tabs.TabLayout.addTabFromItemView(TabLayout.java:820)
at com.google.android.material.tabs.TabLayout.addViewInternal(TabLayout.java:1707)
at com.google.android.material.tabs.TabLayout.addView(TabLayout.java:1697)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1131)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1130)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1130)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1130)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater.inflate(LayoutInflater.java:686)
at android.view.LayoutInflater.inflate(LayoutInflater.java:505)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:363)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:436)
at com.android.tools.idea.layoutlib.LayoutLibrary.createSession(LayoutLibrary.java:121)
at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:741)
at com.android.tools.idea.rendering.RenderTask.lambda$inflate$8(RenderTask.java:897)
at com.android.tools.idea.rendering.RenderExecutor$runAsyncActionWithTimeout$2.run(RenderExecutor.kt:187)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
Downgrade material library to:
implementation 'com.google.android.material:material:1.7.0'
I had the similar issue because of <com.google.android.material.tabs.TabItem/>.
So I removed all the com.google.android.material.tabs.TabItem tags in com.google.android.material.tabs.TabLayout . this solved my rendering issue.
Then I programmatically created the TabItems as,
private fun initComponents() {
val oneFragment = OneFragment()
val twoFragment = TwoFragment()
val threeFragment = ThreeFragment()
val adapter = FragmentPagerAdapter(
childFragmentManager, lifecycle, mutableListOf(
oneFragment, twoFragment, threeFragment
)
)
binding.viewPager.isSaveEnabled = false
binding.viewPager.adapter = adapter
binding.viewPager.currentItem = 0
TabLayoutMediator(binding.tabLayout, binding.viewPager) { tab, position ->
when (position) {
0 -> {
tab.text = getString(R.string.one)
}
1 -> {
tab.text = getString(R.string.two)
}
2 -> {
tab.text = getString(R.string.three)
}
}
}.attach()
}
Page Adapter
class FragmentPagerAdapter(
@NonNull fragmentManager: FragmentManager,
@NonNull lifecycle: Lifecycle,
var mFragmentList: MutableList<Fragment>
) : FragmentStateAdapter(fragmentManager, lifecycle) {
override fun getItemCount(): Int {
return mFragmentList.size
}
override fun createFragment(position: Int): Fragment {
return mFragmentList[position]
}
}
Then XML
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.tabs.TabLayout
android:id="@+id/tabLayout"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_marginStart="25dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="25dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="parent"
tools:ignore="ContentDescription" />
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/viewPager"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@+id/tabLayout"
app:layout_constraintStart_toStartOf="@+id/tabLayout"
app:layout_constraintTop_toBottomOf="@+id/tabLayout" />
</androidx.constraintlayout.widget.ConstraintLayout>
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