Я разрабатываю приложение для платформы Android 2.3.3 и импортирую пакет совместимости для использования класса Fragment.
Прежде всего, я не смог запустить первый тривиальный пример здесь http://developer.android.com/guide/topics/fundamentals/fragments.html
приложение вылетает при попытке раздувать фрагмент.
Я «решил» жесткое кодирование содержимого фрагмента вместо использования XML-файла - я создаю ImageView внутри onCreateView:
public static class SampleFragment extends Fragment
{
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
ImageView image = new ImageView(getActivity());
image.setImageResource(R.drawable.sample_image);
image.setLayoutParams(new FrameLayout.LayoutParams(120, 30, Gravity.CENTER));
return image;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/background">
<fragment
android:name="org.blackimp.ListenActivity$SampleFragment"
android:id="@+id/noise_meter_fragment"
android:layout_weight="0"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
...
</LinearLayout>
проблема в том, что полностью игнорирует ширину и высоту макета , заданные кодом - фактический код преобразует dp в px перед вызовом setLayoutParams. это расширяет изображение, чтобы заполнить всю ширину фрагмента.
- Как настроить ширину и высоту изображения, то есть масштабировать его?
- есть ли способ заставить его работать, надувая и описывая содержимое фрагмента в xml с помощью пакета совместимости - да, я расширил FragmentActivity, но он все равно не работает -?
спасибо