2015-03-20 3 views
0

Есть ли способ, чтобы я мог «преобразовать» Viewgroup, созданную программно, дословно, а затем отправить эту ViewGroup через и helpl?Пропустить андроид ViewGroup через helpl

Я знаю, что это не может быть хороший дизайн или производительность, но есть ли способ, как я могу это сделать?

То, как создается мой ViewGroup:

public ViewGroup getViewGroup(){ 
     LinearLayout root = new LinearLayout(getContext()); 
     root.setPadding(getValueinPixels(16),getValueinPixels(16),getValueinPixels(16),getValueinPixels(16)); 
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); 
     root.setLayoutParams(params); 
     root.setOrientation(LinearLayout.VERTICAL); 

     TextView message = new TextView(getContext()); 
     message.setText(getMessageCorrespondentToAction()); 
     message.setTextColor(Color.parseColor(getHexadecimalColorOfMessageView())); 
     message.setPadding(getValueinPixels(0),getValueinPixels(8),getValueinPixels(0),getValueinPixels(8)); 

     TextView action = new TextView(getContext()); 
     action.setTextColor(Color.parseColor(getHexadecimalColorOfActionView())); 
     action.setPadding(getValueinPixels(0),getValueinPixels(8),getValueinPixels(0),getValueinPixels(8)); 

     root.addView(message); 
     root.addView(action); 

     return root; 

    } 

ответ

0

Есть ли способ, что я могу «преобразовать» а ViewGroup создан программно для parcelable, а затем отправить эту ViewGroup через и aidl?

Вы можете построить определение пользовательского интерфейса в виде a RemoteViews, где получатель может apply() его. RemoteViews есть Parcelable уже.

Вы также можете придумать замену своего собственного RemoteViews, где вы создадите общую структуру данных, которая описывает пользовательский интерфейс, и напишите код, который может генерировать фактические виджеты и контейнеры из этой общей структуры данных. Затем вы можете создать такую ​​структуру данных Parcelable.

+0

Но этот RemoteViews создан только файлом ресурсов? Это потому, что мой вид создан программно ... без какого-либо ресурса. –

+0

@WitaloBenicio: «Но этот RemoteViews создан только файлом ресурсов?» - он начинается с одного, и вы можете присоединить другие «RemoteViews» по мере необходимости через 'addView()'. «Это потому, что мой просмотр создан программно ... без какого-либо ресурса» - передача интерфейса между процессами обычно не поддерживается. «RemoteViews» - единственное, что является частью Android, и оно имеет ограничения. – CommonsWare

+0

Что вы думаете о создании RemoteView в моем приложении (с родительским представлением), отправке на мою службу, например, а затем в Службе добавить представления в этот же RemoteView и вернуться в мое приложение? Это возможный подход? –

Смежные вопросы