【发布时间】:2014-03-31 04:27:53
【问题描述】:
我有 1 个布局,这在我的项目中的所有 3 个选项卡(片段)中都很常见。所以我所做的是我为该公共结构创建了单独的布局,并将该布局包含在所有片段布局中。布局基本上有 4 个按钮,单击这些按钮时,我将更改按钮的背景颜色并相应地显示数据。
代码:-
@Override
public View onCreateView(final LayoutInflater inflater,
final ViewGroup container, final Bundle savedInstanceState) {
final View rootView = inflater.inflate(R.layout.fragment,
container, false);
mLvIncomingCalls = (ListView) rootView.findViewById(R.id.lv);
mBtnDay = (Button) rootView.findViewById(R.id.btnDay);
mBtnWeek = (Button) rootView.findViewById(R.id.btnWeek);
mBtnMonth = (Button) rootView.findViewById(R.id.btnMonth);
mBtnAllTime = (Button) rootView.findViewById(R.id.btnAllTime);
mBtnDay.setOnClickListener(btnDayClickListener);
mBtnWeek.setOnClickListener(btnWeekClickListener);
mBtnMonth.setOnClickListener(btnMonthClickListener);
mBtnAllTime.setOnClickListener(btnAllTimeClickListener);
mBtnDay.setBackgroundColor(getResources().getColor(
android.R.color.holo_blue_light));
return rootView;
}
现在从快照中可以看出,问题是在默认情况下,在第二个选项卡中,所有按钮都是蓝色的。我不明白为什么所有按钮都变成蓝色,因为在所有片段中,我添加了上面的代码,默认情况下,Day 按钮的颜色仅为蓝色。
我需要为所有人创建单独的布局吗?
任何人对此有任何想法,请指导我。
【问题讨论】:
-
您是否尝试过选择器作为按钮的背景可绘制对象?
-
不,我没有尝试过选择器,因为对于所有按钮,我必须创建不同的选择器。所以我认为从代码方面处理它会更好。当有人单击一个按钮时,我会将其颜色更改为蓝色,其余部分将变为灰色。
-
在 onCreateView 中确保其他按钮为灰色怎么样?
-
因为布局 XML 中的默认颜色设置为 GREY。所以它必须是灰色的。你的意思是说在 onCreateView 中我需要再次设置所有颜色,即使它在 XML 文件中设置?
-
您是否尝试过使用单独的布局,如果它有什么不同?
标签: android android-layout android-fragments android-button