FindFragment.java
4.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
package com.cnlive.goldenline.ui.fragment;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import com.cnlive.goldenline.R;
import com.cnlive.goldenline.ui.activity.SearchResultActivity;
import com.cnlive.goldenline.util.LogUtils;
import java.util.ArrayList;
import java.util.List;
import butterknife.BindView;
/**
* FileName:com.cnlive.goldenline.ui.fragment.FindFragment.java
* Created on 2017/2/17
* Version V1.0
*/
public class FindFragment extends BaseFindFragment implements RadioGroup.OnCheckedChangeListener {
private static final String TAG = "FindFragment";
@BindView(R.id.fake_status_bar)
protected View mFakeStatusBar;
@BindView(R.id.fr_find_img_search)
protected ImageView img_search;
@BindView(R.id.fr_find_rg)
protected RadioGroup rg;
@BindView(R.id.fr_find_rb_my_subscription)
protected RadioButton rb_my_subscription;
@BindView(R.id.fr_find_rb_find)
protected RadioButton rb_find;
@BindView(R.id.controlBar)
protected View controlBar;
// @BindView(R.id.fr_find_rb_rankinglist)
// protected RadioButton rb_rankinglist;
@BindView(R.id.fr_find_content)
protected FrameLayout layout_content;
/**
* 发现
*/
private FindNestedFindFragment findFragment;
/**
* 订阅
*/
private FindNestedSubscriptionFragment subscriptionFragment;
/**
* 排行榜
*/
private FindNestedRankingFragment rankingFragment;
private List<Fragment> fragmentList;
private FragmentManager fManager;
private FragmentTransaction ft;
@Override
protected void setupView() {
super.setupView();
LogUtils.LOGE(TAG + " setupView ");
rg.setOnCheckedChangeListener(this);
img_search.setOnClickListener(this);
initFragment();
}
/**
* 默认展示低2个fm
*/
private void showView() {
LogUtils.LOGE(TAG + " showView ");
RadioButton rb = (RadioButton) rg.getChildAt(1);
rb.setChecked(true);
}
//初始化fm
private void initFragment() {
findFragment = new FindNestedFindFragment();
rankingFragment = new FindNestedRankingFragment();
subscriptionFragment = new FindNestedSubscriptionFragment();
fragmentList = new ArrayList<>();
fragmentList.add(subscriptionFragment);
fragmentList.add(findFragment);
// fragmentList.add(rankingFragment);
fManager = getChildFragmentManager();
showView();
}
@Override
protected int getLayoutRes() {
return R.layout.fragment_find;
}
@Override
protected View[] getViews() {
return new View[]{controlBar};
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.fr_find_img_search: //搜索
SearchResultActivity.start(getActivity());
break;
}
}
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
onPageChange();
LogUtils.LOGE("选择的id====onCheckedChanged" + checkedId + " " + group.getChildCount());
for (int i = 0; i < rg.getChildCount(); i++) {
RadioButton rb = (RadioButton) rg.getChildAt(i);
LogUtils.LOGE("选择的id====" + checkedId + " " + rb.getId());
if (rb.getId() == checkedId) {
rb.setEnabled(false);
Fragment fragment = fragmentList.get(i);
FragmentTransaction oft = getObtainFragmentTransaction(i);
if (!fragment.isAdded()) {
oft.add(R.id.fr_find_content, fragment);
oft.commit();
LogUtils.LOGE("onCheckedChanged====" + i);
}
showTab(i);
} else {
rb.setEnabled(true);
}
}
}
private void showTab(int idex) {
for (int i = 0; i < fragmentList.size(); i++) {
FragmentTransaction transaction = getObtainFragmentTransaction(idex);
Fragment fragment = fragmentList.get(i);
if (i == idex) {
transaction.show(fragment);
} else {
transaction.hide(fragment);
}
transaction.commit();
LogUtils.LOGE("显示第几个fm===" + idex);
}
}
private FragmentTransaction getObtainFragmentTransaction(int idex) {
ft = fManager.beginTransaction();
return ft;
}
}