Commit 76efc9b1 authored by wanglei's avatar wanglei

...

parent 115fef2d
package com.base.scanqrclear.businesscard
import android.graphics.Color
import android.view.Gravity
import android.view.LayoutInflater
import android.widget.FrameLayout
import android.widget.LinearLayout
import android.widget.TextView
import androidx.core.view.marginStart
import androidx.core.view.updatePadding
import androidx.fragment.app.Fragment
import androidx.viewpager2.adapter.FragmentStateAdapter
import androidx.viewpager2.widget.ViewPager2
import com.base.scanqrclear.R
import com.base.scanqrclear.base.BaseActivity
import com.base.scanqrclear.databinding.ActivityBusinessCardBinding
......@@ -16,26 +21,84 @@ import com.gyf.immersionbar.ktx.immersionBar
class BusinessCardActivity : BaseActivity<ActivityBusinessCardBinding>(ActivityBusinessCardBinding::inflate) {
private val cardHFragment by lazy(LazyThreadSafetyMode.NONE) {
BusinessCardFragment()
}
private val cardVFragment by lazy(LazyThreadSafetyMode.NONE) {
BusinessCardFragment()
}
private val fragments = arrayOf(cardHFragment, cardVFragment)
private var pageAdapter: FragmentStateAdapter? = null
override fun initView() {
super.initView()
binding.clTop.updatePadding(top = BarUtils.getStatusBarHeight())
arrayOf(getString(R.string.horizontal_version), getString(R.string.vertical_version)).forEachIndexed { index, text ->
initViewPager2()
initTab()
}
private fun initTab() {
val margin = resources.getDimensionPixelSize(R.dimen.dp_30)
val marginH = resources.getDimensionPixelSize(R.dimen.dp_5)
arrayOf(
getString(R.string.horizontal_version),
getString(R.string.vertical_version)
).forEachIndexed { index, text ->
val tab = binding.tabLayout.newTab()
val view = LayoutInflater.from(this).inflate(R.layout.item_business_card_tab, null)
val tabBinding = ItemBusinessCardTabBinding.bind(view)
val layoutParams = LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT
)
layoutParams.setMargins(marginH, 0, marginH, 0)
layoutParams.width = LinearLayout.LayoutParams.MATCH_PARENT
tabBinding.root.layoutParams = layoutParams
tabBinding.tvTab.text = text
// tabBinding.tvTab.setTextColor(ContextCompat.getColor(this, R.color.color_tab_home))
tab.customView = tabBinding.root
tab.id = index
binding.tabLayout.addTab(tab)
}
}
private fun initViewPager2() {
pageAdapter = object : FragmentStateAdapter(this) {
override fun getItemCount(): Int {
return fragments.size
}
override fun createFragment(position: Int): Fragment {
return fragments[position]
}
}
binding.viewPager2.run {
isUserInputEnabled = true
//https://www.jianshu.com/p/f69bd30cf5b0
//FragmentStateAdapter 这里必须传人fragment
adapter = pageAdapter
offscreenPageLimit = 2
}
binding.viewPager2.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() {
override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {
super.onPageScrolled(position, positionOffset, positionOffsetPixels)
}
override fun onPageSelected(position: Int) {
val defaultTab = binding.tabLayout.getTabAt(position)
defaultTab?.select()
defaultTab?.setSelected()
}
})
}
fun TabLayout.Tab.setUnselected() {
......
package com.base.scanqrclear.businesscard
import com.base.scanqrclear.base.BaseFragment
import com.base.scanqrclear.databinding.FragmentBusinessCardBinding
class BusinessCardFragment : BaseFragment<FragmentBusinessCardBinding>(FragmentBusinessCardBinding::inflate) {
override fun initView() {
super.initView()
}
override fun initListener() {
super.initListener()
}
}
\ No newline at end of file
......@@ -112,7 +112,12 @@ class LanguageActivity : BaseActivity<ActivityLanguageBinding>(ActivityLanguageB
Locale("es", "").country
)
)
languageBeanList.findLast { it.language == appLanguageSp && it.country == appLanguageCountrySp }?.isSelect = true
val findBean = languageBeanList.findLast { it.language == appLanguageSp && it.country == appLanguageCountrySp }
if (findBean != null) {
findBean.isSelect = true
} else {
languageBeanList.first().isSelect = true
}
adapter?.submitList(languageBeanList)
}
......
......@@ -53,11 +53,13 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginHorizontal="10dp"
android:background="#6A80FF"
app:tabGravity="center"
app:tabIndicatorHeight="0dp"
app:tabMaxWidth="200dp"
app:tabMinWidth="100dp"
app:tabMode="fixed"
app:tabRippleColor="@android:color/transparent"
app:tabTextColor="@color/color_tab"
tools:ignore="SpeakableTextPresentCheck" />
</FrameLayout>
......@@ -70,7 +72,9 @@
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@id/clTop" />
app:layout_constraintTop_toBottomOf="@id/clTop"
app:layout_constraintVertical_bias="1.0"
tools:layout_editor_absoluteX="-51dp" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 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=".businesscard.BusinessCardFragment">
<!-- TODO: Update blank fragment layout -->
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/hello_blank_fragment" />
</FrameLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FF6150"
android:orientation="vertical">
<TextView
android:id="@+id/tvTab"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="5dp"
android:background="@drawable/bg_tab"
android:gravity="center"
android:paddingHorizontal="20dp"
android:paddingVertical="10dp"
android:text="@string/horizontal_version"
android:textSize="15sp"
android:textStyle="bold" />
</LinearLayout>
......@@ -292,5 +292,7 @@
<string name="do_you_want_to_delete_this_barcode">Do you want to delete this barcode?</string>
<string name="horizontal_version">Horizontal Version</string>
<string name="vertical_version">Vertical Version</string>
<!-- TODO: Remove or change this placeholder text -->
<string name="hello_blank_fragment">Hello blank fragment</string>
</resources>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment