我在tabLayout中只有两个标签说目标和学生。现在,我希望学生文本的颜色为灰色,直到我检查目标复选框。选中复选框后,学生文本的颜色应从灰色变为白色。以下是标签图片: -
这是图片2
以下是TabLayout的代码: -
public class AllKPIActivity extends AppCompatActivity {
private Toolbar toolbar;
private TabLayout tabLayout;
private ViewPagerAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_objective_student);
toolbar = (Toolbar) findViewById(R.id.toolbar);
viewPager = (CustomViewPager) findViewById(R.id.viewpager);
viewPager.setPagingEnabled(false);
adapter = new ViewPagerAdapter(getSupportFragmentManager());
setupViewPager(viewPager);
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
adapter.notifyDataSetChanged();
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
private void setupViewPager(ViewPager viewPager) {
adapter.addFragment(new ObjectivesFragment(), "Objectives");
adapter.addFragment(new StudentsFragment(), "Students");
viewPager.setAdapter(adapter);
}
}
class ViewPagerAdapter extends FragmentStatePagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
public ViewPagerAdapter(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
ObjectivesFragment allFragment = new ObjectivesFragment();
Bundle bundle = new Bundle();
bundle.putString("uuid", uuid);
allFragment.setArguments(bundle);
return allFragment;
case 1:
studentsFragment = new StudentsFragment();
Bundle bundle_students = new Bundle();
bundle_students.putString("uuid", uuid);
studentsFragment.setArguments(bundle_students);
return studentsFragment;
}
return mFragmentList.get(position);
}
@Override
public int getCount() {
return mFragmentList.size();
}
@Override
public int getItemPosition(Object object) {
if (object instanceof UpdateableFragment) {
((UpdateableFragment) object).update(selectedChildList);
} else if (object instanceof ObjectivesFragment) {
}
return super.getItemPosition(object);
}
public void addFragment(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 10 && resultCode == requestCode) {
if (data != null) {
String colorCode = data.getExtras().get("colorCode").toString();
String judgementName = data.getExtras().get("judgementName").toString();
int position = data.getIntExtra("position", 0);
studentsFragment.onJudgementSelected(colorCode, judgementName, position);
}
} else if (requestCode == 1001) {
if (data != null) {
String fileName = data.getExtras().get("File Name").toString();
int position = data.getIntExtra("position", 0);
System.out.print(fileName);
studentsFragment.onCameraResult(fileName, position);
}
} else if (requestCode == 11) {
if (data != null) {
File fileName = (File) data.getExtras().get("fileName");
int position = data.getIntExtra("position", 0);
studentsFragment.onNotesCreated(fileName, position);
}
} else if (requestCode == StudentAdapter.READ_REQUEST_PREVIEW_CODE) {
if (data != null) {
setResult(RESULT_OK, data);
}
} else if (requestCode == StudentAdapter.AVIARY_EDITOR_RESULT) {
if (data != null) {
/* if (intent != null && mAdapter != null) {
Bundle extra = intent.getExtras();
if (extra != null && extra.getBoolean(Constants.EXTRA_OUT_BITMAP_CHANGED)) {
if (useInternalStorage()) {
onImageModified();
} else {
//the file is on the SD card and must be copied back to the internal
//file structure. We then delete the temp file on the SD card.
SharedExecutorService.getInstance().execute(new MainThreadRunnable() {
boolean success;
@Override
public void runOnBackground() {
success = mMediaManager.copyFromTemp(PreviewActivity.this,
mAdapterPosition);
}
@Override
public void runOnMain() {
mMediaManager.clearTempFiles(PreviewActivity.this);
if (!success) {
AndroidUtils.buildSimpleErrorDialog(PreviewActivity.this)
.setMessage(R.string.preview_error).show();
return;
}
onImageModified();
}
});
return;
}
}
}*/
}
}
}
}
答案 0 :(得分:0)
试试这段代码:
ArrayList
答案 1 :(得分:0)
我是通过
实现的in xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@color/tab_background_selected"
android:state_selected="true" />
<item android:drawable="@color/tab_background_unselected" />
</selector>
而tab_background是一个选择器
private LinearLayout mTabsLinearLayout;
@Override
public void onPageScrolled(int i, float v, int i2) {
//overriden method not used
}
@Override
public void onPageSelected(int position) {
for (int i = 0; i < mTabsLinearLayout.getChildCount(); i++) {
TextView tv = (TextView) mTabsLinearLayout.getChildAt(i);
if (i == position) {
tv.setTextColor(Color.WHITE);
} else {
tv.setTextColor(Color.GREY);
}
}
}
@Override
public void onPageScrollStateChanged(int i) {
//overriden method not used
}
<强>编辑:强>
对于文本颜色,此处描述了该方法(https://github.com/astuetz/PagerSlidingTabStrip/issues/141)
public void setUpTabStrip() {
//your other customizations related to tab strip
// Set first tab selected
mTabsLinearLayout = ((LinearLayout) tabStrip.getChildAt(0));
for (int i = 0; i < mTabsLinearLayout.getChildCount(); i++) {
TextView tv = (TextView) mTabsLinearLayout.getChildAt(i);
if (i == 0) {
tv.setTextColor(Color.WHITE);
} else {
tv.setTextColor(Color.GREY);
}
}
}
在创建活动时设置标签时使用此功能
Traceback (most recent call last):
File "urlscript.py", line 356, in <module>
postcheck[dc]()
File "urlscript.py", line 17, in DC8Prod
pmlogin(url,payload)
File "urlscript.py", line 254, in pmlogin
mainpage=requests.get(url,payload)
TypeError: get() takes 1 positional argument but 2 were given