我在我的应用程序中使用SemiClosedSlidingDrawer.
快速解释:
问题:
当我创建视图时,内容部分被充气并缓存,然后部分显示.如果我对主要内容执行任何操作.它反映到滑动抽屉的内容部分.即使它是部分可见的.
我设法找到了内容未设置为GONE 的答案,因此只有接收触摸事件.
在完成所有通胀缓存后,我必须将内容设置为GONE.所以我需要知道
哪个View创建生命周期方法最后调用?或者 在哪里设置ChildView的可见性属性?
我可以在活动中引用我的slidingDrawer内容并设置为GONE它工作正常.但应该有一个正确的方法来解决这个问题.
我在使用2.2平台的片段时遇到了麻烦.我导入了android-support-v4.jar
库以支持片段.
我试图将目标更改为Honeycomb 3.0,代码可以运行.所以,我想知道是否存在一种在本机平台上使用片段的方法,以及使用先前版本执行此操作的不同方法.
这是我的AndroidManifest.xml
:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.nsy.testefragmentos"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="8" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:label="@string/app_name"
android:name=".TesteFragmentosActivity" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="FragmentoLista" />
<activity android:name="FragmentoDetalhe" />
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
这是我的主要课程
package com.nsy.testefragmentos;
import android.app.Activity;
import android.os.Bundle;
public class TesteFragmentosActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
Run Code Online (Sandbox Code Playgroud)
最后,从main.xml
文件调用的片段:
package com.nsy.testefragmentos;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.view.LayoutInflater; …
Run Code Online (Sandbox Code Playgroud) android android-layout android-inflate android-fragments android-support-library
我有一个包含2个活动的应用程序,例如A和B,带有A->B
和B->A
(在背面按下)的导航.我的要求是
我做了一些搜索,从我能找到的,有两种方法可以在android中重用布局
运用 <include>
它似乎是一个编写常用UI元素的xml代码的工具.每次在父布局中使用它时都会膨胀.
运用 ViewStub
我做了一些关于使用ViewStub的研究,它似乎也是一种在许多布局中重用代码段的方法.每次我们在布局中使用它时,它也需要膨胀,除非它在运行时使它们可见时才会膨胀.
对于熟悉iPhone开发的人来说,您可以添加视图UIWindow
,无论哪个UIViewController
当前处于活动状态.我想要在我的应用程序中的确切行为
我的目标是Android 2.1及以上版本.它似乎Fragment
可从API级别11(android 3.0)及更高版本获得.一种选择是使用Android兼容性库,以便Fragment
在旧版本中使用.我现在正在研究这个问题.但我也想知道是否有其他方法可以满足我的要求,而不是改变我的整个项目并使用片段.
我的应用程序中有大约30个奇怪的活动,我希望这个布局浮动在所有这些活动上.我刚刚制作了一个包含2个活动的测试用例,使问题简单易行.
资源的自定义视图:
// Set up the action bar.
final ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
actionBar.setCustomView(R.layout.custom_action_bar);
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
Run Code Online (Sandbox Code Playgroud)
结果是:
自定义视图手动膨胀:
// Set up the action bar.
final ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
LayoutInflater inflater = (LayoutInflater) this .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.custom_action_bar, null);
actionBar.setCustomView(view);
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
Run Code Online (Sandbox Code Playgroud)
结果是:
custom_action_bar.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:weightSum="3">
<TextView
android:id="@+id/bar_title1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textColor="@color/White"
android:text="title1"/>
<TextView
android:id="@+id/bar_title2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textColor="@color/White"
android:text="title2"/>
<TextView
android:id="@+id/bar_title3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textColor="@color/White"
android:text="title3"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
这里显示的第一个布局是正确的,因为它的小部件有权重.第二次尝试应该产生相同的结果,但事实并非如此.
android android-custom-view android-inflate android-actionbar
我在我的drawable文件夹中有以下文件/drawable/mybkg.xml
.我想给它充气,这样我就可以通过编程方式更改颜色.这可能在Android?
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape android:shape="oval" >
<padding
android:top="5dp"
android:bottom="2dp"
android:left="2dp"
android:right="2dp" />
<solid
android:angle="270"
android:color="#1bd4f6" />
<stroke
android:width="2dp"
android:color="#121ce5" />
</shape>
</item>
<!-- Foreground -->
<item>
<shape android:shape="oval" >
<solid android:color="#1b90f6" />
</shape>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
我刚才看到一个叫做的课 LayerDrawable
.有谁知道如何LayerDrawable
通过编写代码或膨胀现有的xml 将我的xml文件转换为这样的文件 ?
我可以毫无困难地获得"活动范围"的数据绑定工作.但是,当我尝试为特定视图设置绑定时,假设我以编程方式添加到LinearLayout的膨胀视图,我尝试过的任何工作都没有.
例如,将数据绑定到Activity的视图是微不足道的.通常在onCreate()方法中,只需要添加:
MainActivityBinding binding = DataBindingUtil.setContentView(this, R.layout.main_activity);
User user = new User("Test", "User");
binding.setUser(user);
Run Code Online (Sandbox Code Playgroud)
而已!视图main_activity.xml将通过一些魔法"绑定"到绑定(这是我的问题),变量替换将在main_activity.xml中按预期工作.
我查阅了Google有关RecyclerView使用的文档,并尝试在我的虚增视图中使用此方法.我这样做是通过创建一个ListItemBinding(我的.XML就被称为list_item.xml这个文件是自动生成的关闭的.xml布局的)每个ViewHolder的ListItemBinding被传递到ViewHolder举行通过参考每个ViewHolder的构造函数.
现在当然,这并不工作,我猜测,这样做的原因是,有我的视图和约束力,但是,有上述活动,并绑定要么之间不系领带之间没有明确的领带,那么,为什么不工作?
我正在深入研究源代码以了解绑定如何对活动起作用,我确信这将有我的答案,但如果有其他人可以在我花费多个小时之前插入,我会很感激开始!
我将在此报告所有调查结果,非常感谢
在我的应用程序的主布局中,我有一个搜索任务按钮。现在,当用户单击该按钮时,我想将布局 xml 文件更改为 search_layout.xml。我不想为搜索任务创建一个新活动,并想使用我的 activity_main.java 类进行编码。那么如何从现有的 activity_main.xml 膨胀 search_layout 。
我的activity_main 布局是使用Collapsing 工具栏和Recycler 视图协调布局。
在我的 search_layout.xml 我有一个简单的相对布局。
那么如何处理呢?我搜索了这个,但到处都可以找到如何将视图添加到现有视图中。但就我而言,我想完全改变看法。
谢谢
嗨所以在我们的项目中我们使用书法库,它没有任何问题,但现在在我添加的其中一个活动中,它与以下堆栈跟踪一起崩溃:
01-23 02:25:32.178 3654-3654/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example, PID: 3654
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example/com.example.activities.MultipleActivity}: android.view.InflateException: Binary XML file line #98: Error inflating class com.example.components.WLayout
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
at android.app.ActivityThread.access$800(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5017)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.view.InflateException: Binary XML file line #98: Error inflating class com.example.components.WLayout
at android.view.LayoutInflater.createView(LayoutInflater.java:621)
at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.createCustomViewInternal(CalligraphyLayoutInflater.java:211)
at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.access$000(CalligraphyLayoutInflater.java:20)
at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater$PrivateWrapperFactory2.onCreateView(CalligraphyLayoutInflater.java:302)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:690)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:756)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:759) …
Run Code Online (Sandbox Code Playgroud) 我在本文中如何将启动画面添加到React Native App中的 android指南
并且在我的主要活动之前启动我的SplashScreen活动,即Android应用程序正在膨胀时.
到目前为止一切都那么好,但是有一些白色的闪烁是由我希望删除的本机js捆绑加载引起的.文章建议使用react-native-splash-screen
库,但是我想将我的依赖关系保持在最低限度.
React原生文档有这个专业提示,基本上实现了我正在寻找的东西,但在iOS(它不会显示启动画面而捆绑未加载).我想弄清楚我将如何在原生java中为android做类似的事情,但到目前为止还没有运气.
我有一个扩展的类view
,它定义了一个自定义绘图(电阻).我想点击一个按钮并将其添加view
到main layout
.所以我看到电阻器,如果我再次点击它会添加另一个电阻器,依此类推.但我不知道解决这个问题的最佳方法.我已经看过很多引用的问题layoutinflater
,但是没有一个问题让自定义视图类膨胀(也许我正在寻找错误的东西),它总是一个xml
文件. 所以我的问题是:如何ResistorViews
在我的布局中添加多个,以便用户可以与它们进行交互(移动,删除,突出显示等)?
这是我尝试过的:
活动类:
public class CircuitSolverActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final Button bAddResistor = (Button) findViewById(R.id.bAdd);
final LinearLayout mLayout = (LinearLayout)findViewById(R.layout.main);
final ResistorView mResistor = new ResistorView(this, 100, 100);
bAddResistor.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mLayout.addView(mResistor);
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
ResistorView类:
public class ResistorView extends View{
private Path mSymbol;
private Paint mPaint;
int mX, mY;
//...Override …
Run Code Online (Sandbox Code Playgroud) android ×10
android-inflate ×10
layout ×3
xml ×2
calligraphy ×1
data-binding ×1
floating ×1
layer-list ×1
lifecycle ×1
react-native ×1
view ×1