Как, после вставки маленького фрагмента, после большого, FrameLayout возвращался до размеров маленького? Я пытался это делать через:
((FrameLayout) findViewById(R.id.frameLayout1_wordsAdd)).getLayoutParams().height = LayoutParams.WRAP_CONTENT;
((LinearLayout) findViewById(R.id.linearLayout1_wordsAdd)).getLayoutParams().height = LayoutParams.WRAP_CONTENT;
Но безуспешно.
Чтобы было понятнее, вот, что выходит:
Вот .xml разметка:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="45dp"
android:layout_margin="3dp"
android:background="@color/white"
android:orientation="horizontal" >
<Spinner
android:id="@+id/spinner_forms"
android:layout_width="match_parent"
android:layout_height="45dp" />
</LinearLayout>
<FrameLayout
android:id="@+id/frameLayout1_wordsAdd"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="3dp"
android:layout_marginRight="3dp" >
</FrameLayout>
<Button
android:id="@+id/btnOK_wordsadd"
android:layout_width="300dp"
android:layout_height="40dp"
android:layout_margin="3dp"
android:background="@drawable/button1"
android:text="Готово" />
Для ЮрийСПб:
При попытке сделать FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) fr.getLayoutParams(); вылетает. Вот сообщения из logcat`a:
10-14 22:01:56.509: ERROR/(675): Could not open '/data/data/hotplug/cmd'
10-14 22:01:56.509: ERROR/(675): error : 2, No such file or directory
10-14 22:01:56.538: ERROR/(142): AudioCloseDumpPCMFile file== NULL
10-14 22:01:56.547: ERROR/(142): AudioCloseDumpPCMFile file== NULL
10-14 22:01:56.570: ERROR/SQLiteLog(7739): (10) Failed to do file read, got: 0, amt: 100, last Errno: 2
10-14 22:01:56.695: ERROR/(675): Could not open '/data/data/hotplug/cmd'
10-14 22:01:56.695: ERROR/(675): error : 2, No such file or directory
10-14 22:01:57.551: ERROR/ActivityThread(5776): Failed to find provider info for com.example.dictionarydemo_2.YPLContentProvider
10-14 22:01:57.705: ERROR/ActivityThread(4486): Failed to find provider info for com.example.dictionarydemo_2.MetricaContentProvider
10-14 22:01:57.841: ERROR/AccountProvider(7725): query content://com.yandex.auth.maps/retail from ru.yandex.yandexmaps
10-14 22:01:57.842: ERROR/DatabaseUtils(7725): Writing exception to parcel
10-14 22:01:57.842: ERROR/DatabaseUtils(7725): java.lang.UnsupportedOperationException: com.yandex.auth.maps: try to query to content://com.yandex.auth.maps/retail selection null
10-14 22:01:57.842: ERROR/DatabaseUtils(7725): at com.yandex.auth.AccountProvider.query(SourceFile:102)
10-14 22:01:57.842: ERROR/DatabaseUtils(7725): at android.content.ContentProvider.query(ContentProvider.java:904)
10-14 22:01:57.842: ERROR/DatabaseUtils(7725): at android.content.ContentProvider$Transport.query(ContentProvider.java:234)
10-14 22:01:57.842: ERROR/DatabaseUtils(7725): at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:112)
10-14 22:01:57.842: ERROR/DatabaseUtils(7725): at android.os.Binder.execTransact(Binder.java:404)
10-14 22:01:57.842: ERROR/DatabaseUtils(7725): at dalvik.system.NativeStart.run(Native Method)
10-14 22:01:57.916: ERROR/AccountProvider(7725): query content://com.yandex.auth.maps/retail from ru.yandex.yandexmaps
10-14 22:01:57.917: ERROR/DatabaseUtils(7725): Writing exception to parcel
10-14 22:01:57.917: ERROR/DatabaseUtils(7725): java.lang.UnsupportedOperationException: com.yandex.auth.maps: try to query to content://com.yandex.auth.maps/retail selection null
10-14 22:01:57.917: ERROR/DatabaseUtils(7725): at com.yandex.auth.AccountProvider.query(SourceFile:102)
10-14 22:01:57.917: ERROR/DatabaseUtils(7725): at android.content.ContentProvider.query(ContentProvider.java:904)
10-14 22:01:57.917: ERROR/DatabaseUtils(7725): at android.content.ContentProvider$Transport.query(ContentProvider.java:234)
10-14 22:01:57.917: ERROR/DatabaseUtils(7725): at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:112)
10-14 22:01:57.917: ERROR/DatabaseUtils(7725): at android.os.Binder.execTransact(Binder.java:404)
10-14 22:01:57.917: ERROR/DatabaseUtils(7725): at dalvik.system.NativeStart.run(Native Method)
10-14 22:01:58.581: ERROR/NativeCrypto(19240): ssl=0x6dde66d0 cert_verify_callback x509_store_ctx=0x6e515938 arg=0x0
10-14 22:01:58.582: ERROR/NativeCrypto(19240): ssl=0x6dde66d0 cert_verify_callback calling verifyCertificateChain authMethod=ECDHE_RSA
10-14 22:01:59.134: ERROR/panhongyang(870): liantong 2g level=4 asu=30 dBm=-53
10-14 22:01:59.135: ERROR/panhongyang(675): liantong 2g level=4 asu=30 dBm=-53
10-14 22:01:59.135: ERROR/panhongyang(780): liantong 2g level=4 asu=30 dBm=-53
10-14 22:01:59.137: ERROR/panhongyang(780): liantong 2g level=4 asu=30 dBm=-53
10-14 22:01:59.906: ERROR/RemoteViews(675): ANR Warning,RemoteViews can only be used once ,if not ,it may cause ANR in hosts such as Laucher,SystemUI. keys for search <ANR Exception MSG History>
10-14 22:01:59.907: ERROR/RemoteViews(675): ANR Warning,RemoteViews can only be used once ,if not ,it may cause ANR in hosts such as Laucher,SystemUI. keys for search <ANR Exception MSG History>
10-14 22:02:01.528: ERROR/(675): Could not open '/data/data/hotplug/cmd'
10-14 22:02:01.528: ERROR/(675): error : 2, No such file or directory
10-14 22:02:01.556: ERROR/(675): Could not open '/data/data/hotplug/cmd'
10-14 22:02:01.556: ERROR/(675): error : 2, No such file or directory
10-14 22:02:01.570: ERROR/SQLiteLog(7739): (10) Failed to do file read, got: 0, amt: 100, last Errno: 2
10-14 22:02:01.682: ERROR/NotificationService(675): n=0
10-14 22:02:01.682: ERROR/NotificationService(675): mLights.size()=0
10-14 22:02:03.064: ERROR/AccountProvider(7725): query content://com.yandex.auth.maps/retail from ru.yandex.yandexmaps
10-14 22:02:03.065: ERROR/DatabaseUtils(7725): Writing exception to parcel
10-14 22:02:03.065: ERROR/DatabaseUtils(7725): java.lang.UnsupportedOperationException: com.yandex.auth.maps: try to query to content://com.yandex.auth.maps/retail selection null
10-14 22:02:03.065: ERROR/DatabaseUtils(7725): at com.yandex.auth.AccountProvider.query(SourceFile:102)
10-14 22:02:03.065: ERROR/DatabaseUtils(7725): at android.content.ContentProvider.query(ContentProvider.java:904)
10-14 22:02:03.065: ERROR/DatabaseUtils(7725): at android.content.ContentProvider$Transport.query(ContentProvider.java:234)
10-14 22:02:03.065: ERROR/DatabaseUtils(7725): at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:112)
10-14 22:02:03.065: ERROR/DatabaseUtils(7725): at android.os.Binder.execTransact(Binder.java:404)
10-14 22:02:03.065: ERROR/DatabaseUtils(7725): at dalvik.system.NativeStart.run(Native Method)
10-14 22:02:03.155: ERROR/AccountProvider(7725): query content://com.yandex.auth.maps/retail from ru.yandex.yandexmaps
10-14 22:02:03.156: ERROR/DatabaseUtils(7725): Writing exception to parcel
10-14 22:02:03.156: ERROR/DatabaseUtils(7725): java.lang.UnsupportedOperationException: com.yandex.auth.maps: try to query to content://com.yandex.auth.maps/retail selection null
10-14 22:02:03.156: ERROR/DatabaseUtils(7725): at com.yandex.auth.AccountProvider.query(SourceFile:102)
10-14 22:02:03.156: ERROR/DatabaseUtils(7725): at android.content.ContentProvider.query(ContentProvider.java:904)
10-14 22:02:03.156: ERROR/DatabaseUtils(7725): at android.content.ContentProvider$Transport.query(ContentProvider.java:234)
10-14 22:02:03.156: ERROR/DatabaseUtils(7725): at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:112)
10-14 22:02:03.156: ERROR/DatabaseUtils(7725): at android.os.Binder.execTransact(Binder.java:404)
10-14 22:02:03.156: ERROR/DatabaseUtils(7725): at dalvik.system.NativeStart.run(Native Method)
10-14 22:02:03.981: ERROR/(675): Could not open '/data/data/hotplug/cmd'
10-14 22:02:03.981: ERROR/(675): error : 2, No such file or directory
10-14 22:02:04.026: ERROR/(675): Could not open '/data/data/hotplug/cmd'
10-14 22:02:04.026: ERROR/(675): error : 2, No such file or directory
10-14 22:02:13.100: ERROR/panhongyang(870): liantong 2g level=4 asu=27 dBm=-59
10-14 22:02:13.102: ERROR/panhongyang(675): liantong 2g level=4 asu=27 dBm=-59
10-14 22:02:13.102: ERROR/panhongyang(780): liantong 2g level=4 asu=27 dBm=-59
10-14 22:02:13.104: ERROR/panhongyang(780): liantong 2g level=4 asu=27 dBm=-59
10-14 22:02:13.862: ERROR/(675): Could not open '/data/data/hotplug/cmd'
10-14 22:02:13.862: ERROR/(675): error : 2, No such file or directory
10-14 22:02:13.980: ERROR/AndroidRuntime(7739): FATAL EXCEPTION: main
10-14 22:02:13.980: ERROR/AndroidRuntime(7739): Process: com.example.dictionarydemo_2, PID: 7739
10-14 22:02:13.980: ERROR/AndroidRuntime(7739): java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams cannot be cast to android.widget.FrameLayout$LayoutParams
10-14 22:02:13.980: ERROR/AndroidRuntime(7739): at com.example.dictionarydemo_2.AddWord$1.onItemSelected(AddWord.java:45)
10-14 22:02:13.980: ERROR/AndroidRuntime(7739): at android.widget.AdapterView.fireOnSelected(AdapterView.java:893)
10-14 22:02:13.980: ERROR/AndroidRuntime(7739): at android.widget.AdapterView.access$200(AdapterView.java:48)
10-14 22:02:13.980: ERROR/AndroidRuntime(7739): at android.widget.AdapterView$SelectionNotifier.run(AdapterView.java:861)
10-14 22:02:13.980: ERROR/AndroidRuntime(7739): at android.os.Handler.handleCallback(Handler.java:808)
10-14 22:02:13.980: ERROR/AndroidRuntime(7739): at android.os.Handler.dispatchMessage(Handler.java:103)
10-14 22:02:13.980: ERROR/AndroidRuntime(7739): at android.os.Looper.loop(Looper.java:193)
10-14 22:02:13.980: ERROR/AndroidRuntime(7739): at android.app.ActivityThread.main(ActivityThread.java:5292)
10-14 22:02:13.980: ERROR/AndroidRuntime(7739): at java.lang.reflect.Method.invokeNative(Native Method)
10-14 22:02:13.980: ERROR/AndroidRuntime(7739): at java.lang.reflect.Method.invoke(Method.java:515)
10-14 22:02:13.980: ERROR/AndroidRuntime(7739): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:824)
10-14 22:02:13.980: ERROR/AndroidRuntime(7739): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640)
10-14 22:02:13.980: ERROR/AndroidRuntime(7739): at dalvik.system.NativeStart.main(Native Method)
Код, который вышел, после добавления удаления фрагментов:
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View itemSelected, int selectedItemPosition, long selectedId) {
switch (form) {
case 1:
if (selectedItemPosition == 1) {
FragmentTransaction fTransaction = getFragmentManager().beginTransaction();
fTransaction.remove(new WordsAddForm1_Fragment());
fTransaction.commit();
FrameLayout fr = (FrameLayout) findViewById(R.id.frameLayout1_wordsAdd);
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) fr.getLayoutParams();
params.height = LayoutParams.WRAP_CONTENT;
fr.setLayoutParams(params);
fTransaction = getFragmentManager().beginTransaction();
fTransaction.add(R.id.frameLayout1_wordsAdd, new WordsAddForm2_Fragment());
fTransaction.commit();
form = 2;
}
break;
case 2:
if (selectedItemPosition == 0) {
FragmentTransaction fTransaction = getFragmentManager().beginTransaction();
fTransaction.remove(new WordsAddForm2_Fragment());
fTransaction.commit();
FrameLayout fr = (FrameLayout) findViewById(R.id.frameLayout1_wordsAdd);
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) fr.getLayoutParams();
params.height = LayoutParams.WRAP_CONTENT;
fr.setLayoutParams(params);
fTransaction = getFragmentManager().beginTransaction();
fTransaction.add(R.id.frameLayout1_wordsAdd, new WordsAddForm1_Fragment());
fTransaction.commit();
form = 1;
}
}
}



FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) fr.getLayoutParams();"вылетает. – Oct 14 '15 at 18:59LinearLayout, в котором находится все остальное. – Oct 14 '15 at 19:03FrameLayout, если не знаешь, что в нем? Или что будет, если попытаться удалить не то, что в нем? – Oct 14 '15 at 19:35FrameLayout. Я добавил код в вопрос. – Oct 14 '15 at 20:37FrameLayoutвLinearLayout, менял параметрыLinearLayout, но результат тот же. – Oct 14 '15 at 20:52