Commit 76efc9b1 authored by wanglei's avatar wanglei

...

parent 115fef2d
package com.base.scanqrclear.businesscard package com.base.scanqrclear.businesscard
import android.graphics.Color import android.graphics.Color
import android.view.Gravity
import android.view.LayoutInflater import android.view.LayoutInflater
import android.widget.FrameLayout
import android.widget.LinearLayout
import android.widget.TextView import android.widget.TextView
import androidx.core.view.marginStart
import androidx.core.view.updatePadding 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.R
import com.base.scanqrclear.base.BaseActivity import com.base.scanqrclear.base.BaseActivity
import com.base.scanqrclear.databinding.ActivityBusinessCardBinding import com.base.scanqrclear.databinding.ActivityBusinessCardBinding
...@@ -16,26 +21,84 @@ import com.gyf.immersionbar.ktx.immersionBar ...@@ -16,26 +21,84 @@ import com.gyf.immersionbar.ktx.immersionBar
class BusinessCardActivity : BaseActivity<ActivityBusinessCardBinding>(ActivityBusinessCardBinding::inflate) { 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() { override fun initView() {
super.initView() super.initView()
binding.clTop.updatePadding(top = BarUtils.getStatusBarHeight()) 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 tab = binding.tabLayout.newTab()
val view = LayoutInflater.from(this).inflate(R.layout.item_business_card_tab, null) val view = LayoutInflater.from(this).inflate(R.layout.item_business_card_tab, null)
val tabBinding = ItemBusinessCardTabBinding.bind(view) 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.text = text
// tabBinding.tvTab.setTextColor(ContextCompat.getColor(this, R.color.color_tab_home))
tab.customView = tabBinding.root tab.customView = tabBinding.root
tab.id = index tab.id = index
binding.tabLayout.addTab(tab) 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() { 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 ...@@ -112,7 +112,12 @@ class LanguageActivity : BaseActivity<ActivityLanguageBinding>(ActivityLanguageB
Locale("es", "").country 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) adapter?.submitList(languageBeanList)
} }
......
...@@ -53,11 +53,13 @@ ...@@ -53,11 +53,13 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_marginHorizontal="10dp" android:background="#6A80FF"
app:tabGravity="center"
app:tabIndicatorHeight="0dp" app:tabIndicatorHeight="0dp"
app:tabMaxWidth="200dp"
app:tabMinWidth="100dp"
app:tabMode="fixed" app:tabMode="fixed"
app:tabRippleColor="@android:color/transparent" app:tabRippleColor="@android:color/transparent"
app:tabTextColor="@color/color_tab"
tools:ignore="SpeakableTextPresentCheck" /> tools:ignore="SpeakableTextPresentCheck" />
</FrameLayout> </FrameLayout>
...@@ -70,7 +72,9 @@ ...@@ -70,7 +72,9 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent" 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> </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"?> <?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:id="@+id/tvTab"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginHorizontal="5dp" android:background="#FF6150"
android:background="@drawable/bg_tab" android:orientation="vertical">
android:gravity="center"
android:paddingHorizontal="20dp" <TextView
android:paddingVertical="10dp" android:id="@+id/tvTab"
android:text="@string/horizontal_version" android:layout_width="match_parent"
android:textSize="15sp" android:layout_height="wrap_content"
android:textStyle="bold" /> android:background="@drawable/bg_tab"
android:gravity="center"
android:paddingVertical="10dp"
android:text="@string/horizontal_version"
android:textSize="15sp"
android:textStyle="bold" />
</LinearLayout>
...@@ -292,5 +292,7 @@ ...@@ -292,5 +292,7 @@
<string name="do_you_want_to_delete_this_barcode">Do you want to delete this barcode?</string> <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="horizontal_version">Horizontal Version</string>
<string name="vertical_version">Vertical 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> </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