Java 滑动碎片的导航(显示?)
我想为我的滑动片段提供一些导航显示(我真的不知道如何更好地解释这一点),就像你看到的(下面的小点就是我想要的) 我已经有了滑动碎片,只是想有一个指示器,显示你在滑动时的实际位置Java 滑动碎片的导航(显示?),java,android,layout,Java,Android,Layout,我想为我的滑动片段提供一些导航显示(我真的不知道如何更好地解释这一点),就像你看到的(下面的小点就是我想要的) 我已经有了滑动碎片,只是想有一个指示器,显示你在滑动时的实际位置 谢谢你的建议 您可以通过无线电组使用以下代码轻松添加寻呼机指示器 用Kotlin编写的代码 import kotlinx.android.synthetic.main.activity_test.* class TestActivity : AppCompatActivity(){ override fun onCre
谢谢你的建议 您可以通过无线电组使用以下代码轻松添加寻呼机指示器 用Kotlin编写的代码
import kotlinx.android.synthetic.main.activity_test.*
class TestActivity : AppCompatActivity(){
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_test)
customImageAdapter = MyCustomPagerAdapter(this@TestActivity, numbers)
vpIntro.adapter = customImageAdapter
/* Add Circle indicator for view the current page*/
addRadioButtons(4, rgPagerIndicator)
vpIntro.setOnPageChangeListener(object : ViewPager.OnPageChangeListener {
override fun onPageScrollStateChanged(state: Int) {
}
override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {
}
override fun onPageSelected(position: Int) {
currentPos = position
rgPagerIndicator.check(position)
}
})
}
添加单选按钮功能
fun addRadioButtons(number: Int, rgPager: RadioGroup) {//, radioButtons: java.util.ArrayList<RadioButton>
// radioButtons.clear()
rgPager.removeAllViews()
if (number > 1) {
for (i in 0 until number) {
val params_button: RadioGroup.LayoutParams
val device_height = 1184
val display = windowManager.defaultDisplay
val size = Point()
display.getSize(size)
val width = size.x
val height = size.y
if (device_height == height) {
params_button = RadioGroup.LayoutParams(25, 25)
params_button.setMargins(7, 0, 7, 0)
} else {
params_button = RadioGroup.LayoutParams(35, 35)
params_button.setMargins(10, 0, 10, 0)
}
val rdbtn = RadioButton(this@WelcomeActivity)
rdbtn.isEnabled = false
rdbtn.id = i
rdbtn.layoutParams = params_button
rdbtn.setBackgroundResource(R.drawable.bg_viewpager_indicator)
rdbtn.setButtonDrawable(R.color.transparent)
if (i == 0) {
rdbtn.isChecked = true
}
rgPager.addView(rdbtn)
}
}
}
fun addRadioButtons(编号:Int,rgPager:RadioGroup){//,radioButtons:java.util.ArrayList
//单选按钮。清除()
rgPager.removeAllViews()
如果(数字>1){
for(在0中输入i,直到数字){
val params_按钮:RadioGroup.LayoutParams
val装置高度=1184
val display=windowManager.defaultDisplay
val大小=点()
display.getSize(大小)
val宽度=大小.x
val高度=尺寸y
如果(设备高度==高度){
params_button=RadioGroup.LayoutParams(25,25)
参数按钮。设置边距(7,0,7,0)
}否则{
参数按钮=射线组布局参数(35,35)
参数按钮。设置边距(10,0,10,0)
}
val rdbtn=单选按钮(this@WelcomeActivity)
rdbtn.isEnabled=false
rdbtn.id=i
rdbtn.layoutParams=params\u按钮
rdbtn.setBackgroundResource(R.drawable.bg\u viewpager\u指示器)
rdbtn.setButtonDrawable(R.color.transparent)
如果(i==0){
rdbtn.isChecked=true
}
rgPager.addView(rdbtn)
}
}
}
在您的查看寻呼机下面以xml格式创建一个无线电组
<RadioGroup
android:id="@+id/rgPagerIndicator"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_marginBottom="@dimen/margin_10"
android:gravity="center"
android:orientation="horizontal" />
因此我找到了一种显示此片段的方法,在Nielsh response的帮助/启发下,我实现了一个java变体。首先将RadioGroup添加到MainActivity.xml中
<RadioGroup
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|bottom"
android:orientation="horizontal"
android:id="@+id/radio_group">
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/radioButton"
android:checked="true" />
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/radioButton2"
/>
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/radioButton3" />
</RadioGroup>
请不要发布代码链接,在你的问题中包含一个。谢谢你。你应该阅读本网站的指南和指南,而不是试图讽刺。
(...)
radioGroup = (RadioGroup)findViewById(R.id.radio_group);
(...)
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i1) {
}
@Override
public void onPageSelected(int position) {
page = position;
switch (position){
case 0:
radioGroup.check(R.id.radioButton);
break;
case 1:
radioGroup.check(R.id.radioButton2);
break;
case 2:
radioGroup.check(R.id.radioButton3);
break;
}
}
@Override
public void onPageScrollStateChanged(int i) {
}
}); // viewpager on page change listener