Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android Studio 3.5 Code Formatting changes the order of UI components in Layout hierarchy in XML Layout [duplicate]

I've just updated to Android Studio 3.5 and now when I try to refactor the file AndroidManifest.xml, all my app permissions are moved to the bottom of the file.

Has anyone else faced this issue? Is there any solution for this?

Before refactor:

enter image description here

After refactor:

enter image description here

It is applicable to my all project files.

Why it matters:

enter image description here

like image 845
Sagar Kacha Avatar asked Aug 21 '19 11:08

Sagar Kacha


6 Answers

You just need to set xml layout for Android applications from the settings.

Follow this steps:

1. Go to Android Studio > Preferences. For Windows, go to File > Settings.

enter image description here

2. Search for xml in search bar.

enter image description here

3. Under code style section, select xml tab.

enter image description here

4. In the top right corner, click on set from... and under predefined style, select Android

enter image description here

5. Click on Apply and try to refactor.

like image 144
Birju Vachhani Avatar answered Oct 06 '22 08:10

Birju Vachhani


Reset the appropriate Android code style as follows.

For Windows Only

Step1: Click on the file menu.

Step2: Navigate to Setting.

Step3: Find Editor in the Left Panel**.

Step4: Find Code Style in the Sub Menu of Editor.

Step5: Click on XML in the Sub Menu of Code Style.

Step6: Click on Set from in Top right corner of Right panel.

Step7: Select Predefined Style.

Step8: Select Android.

Step9: Click OK.

For macOS Only

Step1: Click on the Android Studio menu.

Step2: Navigate to Preferences.

Step3: Find Editor in the Left Panel**.

Step4: Find Code Style in the Sub Menu of Editor.

Step5: Click on XML in the Sub Menu of Code Style.

Step6: Click on Set from in Top right corner of Right panel.

Step7: Select Predefined Style.

Step8: Select Android.

Step9: Click OK.

like image 40
VIISHRUT MAVANII Avatar answered Oct 06 '22 08:10

VIISHRUT MAVANII


It seems the default scheme leaves out the "attribute" property in the arrangement rules. Adding them back in works like a charm for me.

The correction can be made in: Preferences > Editor > Code Style > XML enter image description here

like image 28
Slartibartfast Avatar answered Oct 06 '22 08:10

Slartibartfast


Just adding more details .

This is a known issue with android studio from Android Studio 3.5 Canary 8 . It should get fixed in next version as this turned out to affect large number of developers .

You can see status of the bug here

Also the solution is

Broken XML code style

When editing XML code, the IDE might apply an incorrect code style when you select Code > Reformat Code from the menu bar. To fix this issue, reset the appropriate Android code style as follows:

  1. Open the Settings window by clicking File > Settings (on macOS, Android Studio > Preferences).
  2. In the left panel, click Editor > Code Style > XML.
  3. Near the top-right corner of the right panel, select Set from > Predefined Style > Android
  4. Click OK.

Which is found here -> Known issues with Android Studio and Android Gradle Plugin

Edit: This is now fixed in Android studio version 3.5.2

like image 23
Manohar Avatar answered Oct 06 '22 09:10

Manohar


  • ctrl + alt + s
  • Search XML

I wanted to do the same steps as the first answer, but I just needed to change the default scheme to project.

I hope that you also solve it this way . Sorry for my English !

enter image description here

enter image description here

like image 24
Irvin Joao Avatar answered Oct 06 '22 09:10

Irvin Joao


If you have a custom code style defined, you have to specify a type for each rule: tag or attribute.

It seems like after the update, if you do not specify a type, the rules will be applied to both. Not sure if it is a bug, but that's how i fixed.

This does not work on 3.5

After adding the attribute type to each rule, it worked

like image 44
Kine Avatar answered Oct 06 '22 07:10

Kine