Tôi đã tạo ra một PreferenceFragment với hai loại và một hộp kiểm, tuy nhiên, khi tôi hiển thị nó trong ứng dụng của tôi, nền có vẻ trong suốt.PreferenceFragment với nền trong suốt?
Tôi có thể thấy các hoạt động chính, các trường và các PreferenceFragment được đặt trên đầu trang của những người từ hoạt động chính ... giải pháp cho điều này là gì?
Trong hoạt động chính của tôi tôi làm điều này để mở PreferenceFragment khi nút cài đặt được chọn:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
//handle presses on action bar items
switch (item.getItemId()) {
case R.id.action_settings:
getFragmentManager().beginTransaction().replace(android.R.id.content,
new SettingsFragment()).commit();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
đang PreferenceFragment của tôi trông như thế này: public class SettingsFragment kéo dài PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//load the preferences from an XML resource
addPreferencesFromResource(R.xml.preferences);
}
}
My preferences.xml trông giống như sau:
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout="@layout/fragment_settings">
<PreferenceCategory
android:title="@string/server_prefs_title"
android:key="pref_key_server_settings" >
<CheckBoxPreference
android:key="pref_server_url"
android:title="@string/pref_server_url"
android:summary="@string/pref_server_url_summ"
android:defaultValue="true" />
</PreferenceCategory>
<PreferenceCategory
android:title="@string/company_prefs_title"
android:key="pref_key_company_settings" >
</PreferenceCategory>
</PreferenceScreen>
Tôi đã thử câu trả lời khác trên Stack Overflow được đề xuất và thêm vào Fragment Preference của tôi, mặc dù nó chặn các trường hiển thị từ Activity chính, nó chỉ xuất hiện là mặt nạ, vì các trường đoạn cũng bị ảnh hưởng bởi màu sắc mà tôi đã đặt:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle
savedInstanceState) {
View view = super.onCreateView(inflater, container, savedInstanceState);
view.setBackgroundColor(getResources().getColor(android.R.color.black));
return view;
}
Cảm ơn sự trợ giúp !!!
EDIT: Tôi nghĩ rằng tôi đã trả lời câu hỏi của riêng tôi trong khi gõ những dòng này ra ... Tôi nói thêm:
addPreferencesFromResource(R.xml.preferences);
Sau khi thực hiện:
View view = super.onCreateView(inflater, container, savedInstanceState);
view.setBackgroundColor(getResources().getColor(android.R.color.black));
Đó có phải là cách thích hợp để làm giải quyết này?
Trong khi liên kết này có thể trả lời câu hỏi, tốt hơn nên bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo. Câu trả lời chỉ liên kết có thể trở thành không hợp lệ nếu trang được liên kết thay đổi. –
Yea bạn nói đúng. Đoán tôi chỉ là lười biếng. Fleshed ra câu trả lời nhiều hơn một chút. – himahimahima