Articles of android inflate

输入类时出错

我正试图在UI中工作。 我正在尝试为列表条目设置stateListDrawable。 我想要做的就是在按下项目时更改列表项目布局的颜色,并且在按下列表项目时我也想要更改文本的颜色。 我收到以下错误堆栈: E/AndroidRuntime( 360): FATAL EXCEPTION: main E/AndroidRuntime( 360): android.view.InflateException: Binary XML file line #8: Error inflating class E/AndroidRuntime( 360): at android.view.LayoutInflater.createView(LayoutInflater.java:513) E/AndroidRuntime( 360): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) E/AndroidRuntime( 360): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563) E/AndroidRuntime( 360): at android.view.LayoutInflater.rInflate(LayoutInflater.java:618) E/AndroidRuntime( 360): at android.view.LayoutInflater.inflate(LayoutInflater.java:407) E/AndroidRuntime( 360): at android.view.LayoutInflater.inflate(LayoutInflater.java:320) E/AndroidRuntime( 360): at android.view.LayoutInflater.inflate(LayoutInflater.java:276) 膨胀的XML如下: 如果我从xml中删除android:textColor属性,我可以让程序工作。 有没有办法可以使用stateListDrawable来控制xml中的listitem的texColor? stateListDrawable适用于LinearLayout中的android:background ,但不适用于TextView的textColor属性。 状态列表xml如下: 任何回应将不胜感激。

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

我想更深入地了解Android是如何工作的,我需要有人来解释视图实际上是如何工作的“幕后”。 在正常的过程中,我们将使用方法“setContentView(R.layout.ourlayoutfile)”在我们的扩展Activity的onCreate方法中从XML中扩展(这是正确的单词?)视图。 然后我们会从该XML中findViews。 快速示例:如果我们需要find一个按钮,我们首先需要调用“setContentVIew()”,然后在我们的按钮上调用“findViewById”。 然后我们可以分别使用这个按钮/视图。 我最近开始使用LayoutInflater,因为我find了“setContentView”方法无法自拔的地方,令我惊讶的是我发现我的Android知识非常好。 我甚至无法管理LayoutInflater。 我很尴尬。 一天之后,我设法用LayoutInflater来扩充视图。 实际上它并不是很难,我从一开始就非常接近但是有一个参数我不知道要传递什么。请看一下这段代码:(这都发生在onCreate方法的Activity上) 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); 我总是传递“null”参数,当然它没有用。 甚至在文档中它说这个参数是可选的! (为什么?,如果需要的话)? 我做了简单的布局。 请查看它以及它与HiearchyViewer的外观: 上图中的第二个参数是什么,为什么我们需要它? 可能是连接我的布局(R.layout.activity_main),使用Android提供的View(从左到右的第一个视图 – 父视图)。 […]

它没有边距而膨胀视图

我有这个代码 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”) 然后在我的布局中,我看到项目列表膨胀,但它们之间没有边距。 我尝试使用margintop = 10dip仍然没有发生我的观点是我在布局中放置的值不是在计算中有或没有边距顶部布局是相同的。 如何在项目之间添加一些空白区域? 如何在物品之间充气? 是否有可能膨胀像空隙或某些空间? 或者我必须使用解决方法,比如用2dip高度或某些东西来膨胀一些空布局谢谢

具有自定义视图层次结构的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中有什么布局的充气机的使用? 什么情况下,人们将不得不使用它?