Articles of android inflate

具有自定义视图层次结构的Android + ListFragment

我试图通过从onCreateView(LayoutInflater, ViewGroup, Bundle)返回我自己的视图层次结构来自定义片段布局。 这膨胀了我的自定义视图,但似乎堆叠视图而不是在内部膨胀,我立刻看到了所有内容。 任何帮助表示赞赏。 MyActivity.java: public class MyActivity extends FragmentActivity{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getSupportFragmentManager().findFragmentById(android.R.id.content) == null) { ArrayListFragment list = new ArrayListFragment(); getSupportFragmentManager().beginTransaction().add(android.R.id.content, list).commit(); } } public static class ArrayListFragment extends ListFragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { inflater.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); inflater.inflate(R.layout.main, container); return super.onCreateView(inflater, container, […]

如何在膨胀的布局中使用相同的ID来扩充布局的多个实例

我有一个带有许多嵌套LinearLayouts和TextViewss的LinearLayout 我的主要活动是膨胀主要的LinearLayout, 然后我从服务器加载数据,并根据收到的数据,我在占位符(LinearLayout)中添加多个布局 这是一个简单的新闻页面,我加载与新闻相关联的图像并将其放在最初为空的LinearLayout中。 每个图像都有以下信息:标题(TextView),日期(TextView),图像(ImageView)所以我实际做的是以下内容: * 请注意,这只是问题中我必须编写的所有尝试 – > catch … if / else ….等 public void addImages(JSONArray images){ ViewGroup vg = (ViewGroup) findViewById(R.id.imagesPlaceHolder); // loop on images for(int i =0;i<images.length;i++){ View v = getLayoutInflater().inflate(R.layout.image_preview,vg); // then I think that here is the problem ImageView imv = (ImageView) v.findViewById(R.id.imagePreview); TextView dt = (TextView) v.findViewById(R.id.dateHolder); TextView […]

用兼容包android充气片段

我正在尝试使用向后兼容包来扩展包含Fragment的布局。 我把jar文件放在我项目的libs文件夹中。 我扩展了Fragment,然后尝试通过将Activity的contentView设置为来扩充它 但是当我设置内容视图时,它会因为fragment标签的ClassNotFoundException而失败。 这是logcat输出。 java.lang.RuntimeException: Unable to start activity ComponentInfo{}: \ android.view.InflateException: Binary XML file line #51: \ Error inflating class fragment at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1777) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1793) at android.app.ActivityThread.access$1500(ActivityThread.java:123) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:939) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:123) at android.app.ActivityThread.main(ActivityThread.java:3848) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:507) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) at dalvik.system.NativeStart.main(Native Method) Caused by: android.view.InflateException: Binary XML file […]

InflateException:二进制XML文件行#1:由OutOfMemoryError引起的类错误

这是我的代码: input.xml (布局文件夹) InputFragment.java import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentTransaction; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.Button; import android.widget.RadioButton; import android.widget.SeekBar; import android.widget.SeekBar.OnSeekBarChangeListener; import android.widget.TextView; import android.widget.Toast; public class InputFragment extends Fragment { private Button submit; private RadioButton deviceTypeRadio, daysAsCustomerRadio, averageSessionsRadio, conversionTimeRadio; private RadioButton monthlySpendRadio,viralityInvitesSentRadio, churnedUsersRadio, LTVTotalSpentRadio; private SeekBar daysAsCustomerSeek, averageSessionSeek, conersionTimeSeek, […]

是否可以截取一个视​​图,而不显示视图?

简短的问题: 假设我有某种布局文件,并且膨胀它(或者在代码中使用普通的CTOR)。 我不希望显示膨胀的视图,而是希望在某些限制(给定的宽度和高度,甚至比屏幕更大的限制)下看起来像是“截图”(位图)。 我不希望将视图添加到屏幕上的任何地方,但只是为了这个目的而保留它,也许以后再添加它。 这样的事情可以用来轻松操纵如何放置东西。 例如,我可以使用一个图像放置在其中的布局,以便它周围有一个框架。 这样的事情可能吗? 如果是这样,怎么样?

有效地创build一个LayoutInflater

我的问题是创build一个LayoutInflater实例的最佳方式是什么? 有什么区别吗? LayoutInflater inflater = LayoutInflater.from(context); 和 LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 哪个更好的解决scheme? 其他解决scheme也受到欢迎。 谢谢。

layoutinflator有什么用途?

我是一名新的Android开发人员。 我试图从文档中理解布局充气机的使用,但一直无法理解。 在android中有什么布局的充气机的使用? 什么情况下,人们将不得不使用它?

有人可以解释膨胀的方法吗? 更深入地了解Android视图

我想深入了解Android的工作原理,我需要一个人来解释一下Views是如何“底层”工作的。 在正常的过程中,我们将使用方法“setContentView(R.layout.ourlayoutfile)”在扩展的Activity的onCreate方法中从XML中扩展(这是正确的单词? 然后,我们将从该XML中find视图。 快速示例:如果我们需要find一个button,我们需要先调用“setContentVIew()”,然后在我们的button上find“findViewById”。 然后我们可以分别使用这个button/视图。 最近我开始使用LayoutInflater,因为我遇到了“setContentView”方法让我无法自拔的问题,而且我惊奇地发现我的Android知识非常好。 我甚至无法pipe理LayoutInflater的工作。 我很尴尬。 一天之后,我设法使用LayoutInflater来扩充视图。 其实这不是很难,我已经从一开始就非常接近,但有一个参数,我不知道通过什么。请看这个代码:(这一切都发生在Activity的onCreate方法) View v = getLayoutInflater().inflate(R.layout.activity_main, (ViewGroup) getWindow().getDecorView()); final Button b = (Button) v.findViewById(R.id.button1); final TextView tv = (TextView) v.findViewById(R.id.textView1); b.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { tv.setText("Just random text"); } }); } 这段代码工作正常,但我遇到的问题实际上是这行代码: getLayoutInflater().inflate(R.layout.activity_main, null); 我总是通过“空”参数,当然它没有奏效。 即使在文档中,它说这个参数是可选的! (为什么?如果需要的话)? 我做了简单的布局。 请看看它和HiearchyViewer的外观: 上图中的第二个参数是什么,为什么我们在那里需要它? 也许连接我的布局(R.layout.activity_main),由Android提供的视图(从左到右的第一个视图 – 父视图)。 […]

浮动操作button和devise库膨胀错误

我正在使用devise支持库 defaultConfig { vectorDrawables.useSupportLibrary = true … } dependencies { compile 'com.android.support:design:23.4.0' compile 'com.android.support:support-v4:23.4.0' … } 当我添加FloatingActionButton <android.support.design.widget.FloatingActionButton android:layout_gravity="right" android:layout_margin="20dp" android:tint="#fff" android:src="@drawable/ic_menu_manage" app:backgroundTint="#b3000000" android:layout_width="wrap_content" android:layout_height="wrap_content" /> 到我的布局之一,我得到这个错误 Caused by: java.lang.IllegalArgumentException: You need to use a Theme.AppCompat theme (or descendant) with the design library. 这是我的主要活动( it has navigation drawer ) public class MapNavActivity extends AppCompatActivity 我知道它应该工作,如果我将AppCompatActivity更改为Activity […]

它膨胀的观点没有保证金

我有这个代码 View item = View.inflate(context, R.layout.item_layout, null); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); layout.addView(item, params); 我的item_layout :(注意部分android:layout_marginTop =“2dip”) <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="wrap_content" android:layout_marginTop="2dip" android:layout_width="fill_parent"> <ImageView android:src="@drawable/pic_unknown" android:id="@+id/image1" android:layout_height="50dip" android:layout_width="50dip" android:padding="5dip"></ImageView> </RelativeLayout> 然后在我的布局中,我看到膨胀的物品清单,但在他们之间没有余量。 我试图用margintop = 10dip仍然没有发生我的观点是,我把它放在布局的价值是不带边缘的计算带有顶部的布局是一样的。 如何在项目之间添加一些空的空间? 我怎样才能在物品之间充满空的空间? 是否有可能膨胀像差距或一些空间的东西? 或者我必须使用像2dip高度或什么的东西膨胀一些空布局的解决方法谢谢