В моем последнем семестре в колледже я занимаюсь старшим проектом и в основном отвечаю за дизайн.Раньше я никогда широко не кодировал, так что для меня все это ново.Я обнаружил, что если вы будете следовать учебному пособию для разработчиков Android по умолчанию для настройки макета вкладок, эти вкладки в оттенках серого будут выделены оранжевым цветом по умолчанию при нажатии.Затем я последовал некоторым другим учебным пособиям, которые включали несколько различных файлов XML для состояний, а что нет.
Ну, прежде чем я решил немного настроить приложение, это было хорошо.Но в коде я реализовал onTabChangeListener и реализовал этот код + метод:
for(int i=0;i<tabHost.getTabWidget().getChildCount();i++)
{
tabHost.getTabWidget().getChildAt(i).setBackgroundColor(Color.parseColor("#B4EEB4"));//unactive, light green
}
tabHost.getTabWidget().setCurrentTab(1);
tabHost.getTabWidget().getChildAt(1).setBackgroundColor(Color.parseColor("#95D8FF"));//active, sky blue
}
@Override
public void onTabChanged(String tabId) {
for(int i=0;i<tabHost.getTabWidget().getChildCount();i++)
{
tabHost.getTabWidget().getChildAt(i).setBackgroundColor(Color.parseColor("#B4EEB4")); //inactive, light green
}
tabHost.getTabWidget().getChildAt(tabHost.getCurrentTab()).setBackgroundColor(Color.parseColor("#95D8FF"));//active, sky blue
Это делает мои вкладки красивыми небесно-голубыми, когда они выделены, и бледно-зелеными, когда они не выбраны.Но я не могу получить какие-либо яркие эффекты.У меня были проблемы с w / XML, когда дело дошло до установки цвета вкладки, поэтому я сделал это программно.ТАКЖЕ, всякий раз, когда я редактирую свой tab_bg_selected, если я использую
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:topLeftRadius="10dp"
android:bottomRightRadius="10dp"
android:bottomLeftRadius="10dp"/>
<gradient android:startColor="#95D8FF" android:centerColor="#3896DC"
android:endColor="#1870D0" android:angle="-90" />
</shape>
, тогда фактический весь вид этой вкладки становится округленным.Я хотел бы округлить свои вкладки, но этого просто не происходит, и многие примеры реализации вкладок просто сбивают с толку.Был один, который действительно помог, но теперь я хочу сделать немного больше.
Мой основной файл .java имеет 3 отдельных намерения для каждой вкладки, потому что я хочу, чтобы они были разными действиями.Так что для моего примера вот как выглядит мой код для одной вкладки:
intent = new Intent().setClass(this, ClasslistTabActivity.class);
spec = tabHost.newTabSpec("classes").setIndicator("Classes",
res.getDrawable(R.drawable.ic_tab_classlist))
.setContent(intent);
Вот как выглядят некоторые из моих XML-файлов при нажатии / переходе.
ic_tab_classlist.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Pressed -->
<item android:state_pressed="true" android:drawable="@drawable/onhighlight" />
<!-- When the tab is selected, use color-scale -->
<item android:drawable="@drawable/classlistroundedblueresize"
android:state_selected="true"/>
<!-- When the tab is not selected, use gray-scale -->
<item android:drawable="@drawable/classlistroundedblueunselected"
android:state_selected="false"/>
</selector>
tab_bg_selectedcl.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:topLeftRadius="10dp"
android:bottomRightRadius="10dp"
android:bottomLeftRadius="10dp"/>
<gradient android:startColor="#95D8FF" android:centerColor="#3896DC"
android:endColor="#1870D0" android:angle="-90" />
</shape>
onhighlight.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
android:background="#00eeee">
</shape>
layout_classlist.xml
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tabsLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/tab_bg_selectedcl"
android:gravity="center"
android:orientation="vertical"
android:padding="10dip" >
<TextView
android:id="@+id/tabsText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Title"
android:textColor="@drawable/tab_text_selector"
android:textSize="15dip" />
<RelativeLayout
android:id="@+id/RelativeLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<Button
android:id="@+id/addCourseBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="29dp"
android:onClick="addCourse"
android:text="Add Course" />
</RelativeLayout>
</TableLayout>
Надеюсь, мой вопрос имеет смысл.То, что я хотел бы сделать, это когда мой палец нажимают на вкладку, я хочу, чтобы он выделил что-то другое, пока я не отпущу, и тогда состояние «активной вкладки» может вступить во владение.
Спасибо залюбой совет!