Skip to content

Commit ee27b3c

Browse files
sofakeerthinaaron
authored andcommitted
修改项目内标题
1 parent ab28ff7 commit ee27b3c

2 files changed

Lines changed: 100 additions & 6 deletions

File tree

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
package net.coding.program.common.util;
2+
3+
import android.content.Context;
4+
import android.support.annotation.NonNull;
5+
import android.support.annotation.Nullable;
6+
import android.view.View;
7+
8+
import net.coding.program.common.Global;
9+
10+
import java.lang.reflect.Field;
11+
12+
/**
13+
* Created by anfs on 19/12/2016.
14+
*/
15+
public class ViewUtils {
16+
17+
/**
18+
* @param root usually Activity.getWindow().getDecorView() or your custom Toolbar
19+
*/
20+
public static
21+
@Nullable
22+
View findActionBarTitle(@NonNull View root) {
23+
return findActionBarItem(root, "action_bar_title", "mTitleTextView");
24+
}
25+
26+
/**
27+
* @param root usually Activity.getWindow().getDecorView() or your custom Toolbar
28+
*/
29+
public static
30+
@Nullable
31+
View findActionBarSubTitle(@NonNull View root) {
32+
return findActionBarItem(root, "action_bar_subtitle", "mSubtitleTextView");
33+
}
34+
35+
private static
36+
@Nullable
37+
View findActionBarItem(@NonNull View root,
38+
@NonNull String resourceName, @NonNull String toolbarFieldName) {
39+
View result = findViewSupportOrAndroid(root, resourceName);
40+
41+
if (result == null) {
42+
View actionBar = findViewSupportOrAndroid(root, "action_bar");
43+
if (actionBar != null) {
44+
result = reflectiveRead(actionBar, toolbarFieldName);
45+
}
46+
}
47+
if (result == null && root.getClass().getName().endsWith("widget.Toolbar")) {
48+
result = reflectiveRead(root, toolbarFieldName);
49+
}
50+
return result;
51+
}
52+
53+
@SuppressWarnings("ConstantConditions")
54+
private static
55+
@Nullable
56+
View findViewSupportOrAndroid(@NonNull View root, @NonNull String resourceName) {
57+
Context context = root.getContext();
58+
View result = null;
59+
if (result == null) {
60+
int supportID = context.getResources().getIdentifier(resourceName, "id", context.getPackageName());
61+
result = root.findViewById(supportID);
62+
}
63+
if (result == null) {
64+
int androidID = context.getResources().getIdentifier(resourceName, "id", "android");
65+
result = root.findViewById(androidID);
66+
}
67+
return result;
68+
}
69+
70+
@SuppressWarnings("unchecked")
71+
public static <T> T reflectiveRead(@NonNull Object object, @NonNull String fieldName) {
72+
try {
73+
Field field = object.getClass().getDeclaredField(fieldName);
74+
field.setAccessible(true);
75+
return (T) field.get(object);
76+
} catch (Exception ex) {
77+
Global.errorLog(ex);
78+
}
79+
return null;
80+
}
81+
}

app/src/main/java/net/coding/program/project/detail/ProjectTaskFragment.java

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,11 @@
77
import android.support.v4.app.Fragment;
88
import android.support.v4.app.FragmentManager;
99
import android.support.v4.view.ViewPager;
10-
import android.support.v7.app.ActionBar;
10+
import android.support.v4.widget.DrawerLayout;
1111
import android.util.TypedValue;
1212
import android.view.View;
13+
import android.widget.TextView;
14+
import android.widget.Toast;
1315

1416
import com.melnykov.fab.FloatingActionButton;
1517

@@ -19,6 +21,7 @@
1921
import net.coding.program.common.Global;
2022
import net.coding.program.common.ListModify;
2123
import net.coding.program.common.SaveFragmentPagerAdapter;
24+
import net.coding.program.common.util.ViewUtils;
2225
import net.coding.program.model.AccountInfo;
2326
import net.coding.program.model.ProjectObject;
2427
import net.coding.program.model.TaskObject;
@@ -70,6 +73,7 @@ public class ProjectTaskFragment extends TaskFilterFragment implements TaskListP
7073

7174
MemberTaskCount mMemberTask = new MemberTaskCount();
7275
private MyPagerAdapter adapter;
76+
private DrawerLayout drawer;
7377

7478
@AfterViews
7579
protected final void initProjectTaskFragment() {
@@ -89,15 +93,23 @@ protected final void initProjectTaskFragment() {
8993
// 必须添加,否则回收恢复的时候,TaskListFragment 的 actionmenu 会显示几个出来
9094
setHasOptionsMenu(true);
9195

92-
//toolBarTitle = (TextView) getActivity().findViewById();
93-
ActionBar actionBar = getActionBarActivity().getSupportActionBar();
94-
actionBar.setDisplayHomeAsUpEnabled(true);
95-
actionBar.setHomeButtonEnabled(true);
96-
actionBar.setCustomView(R.layout.view_project_task_toolbar);
96+
TextView viewById = (TextView) ViewUtils.findActionBarTitle(getActivity().getWindow().getDecorView());
97+
if (viewById != null) {
98+
viewById.setBackgroundResource(R.drawable.maopao_spinner);
99+
viewById.setOnClickListener(new View.OnClickListener() {
100+
@Override
101+
public void onClick(View v) {
102+
//Do something
103+
Toast.makeText(getActivity(), "hello world", Toast.LENGTH_SHORT).show();
104+
}
105+
});
106+
viewById.setText("我的任务");
107+
}
97108

98109
initFilterViews();
99110
}
100111

112+
101113
private void refresh() {
102114
getNetwork(HOST_TASK_MEMBER, HOST_TASK_MEMBER);
103115
}
@@ -313,6 +325,7 @@ public String getPageIconUrl(int position) {
313325
@OptionsItem
314326
protected final void action_filter() {
315327
actionFilter();
328+
//drawer.openDrawer(GravityCompat.END);
316329
}
317330

318331
}

0 commit comments

Comments
 (0)