我想创建一个全宽导航抽屉.设置layout_width为match_parenton @+id/left_drawer的宽度约为屏幕空间的80%.这似乎是标准行为.我一定要重写onMeasure()的DrawerLayout?
我目前的代码:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/black"
android:id="@+id/mainFragmentContainer">
</FrameLayout>
<include
android:id="@+id/left_drawer"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="start"
layout="@layout/drawer"/>
</android.support.v4.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)
谢谢.
我使用GLEW和freeglut.出于某种原因,在调用glewInit()之后,glGetError()返回错误代码1280,即使使用glewExperimental = GL_FALSE也是如此.
我无法编译着色器,glGetProgramInfoLog()返回"在调用glLinkProgram()之前未成功编译顶点着色器.链接失败." 之前我能够编译着色器.
重新安装驱动程序没有帮助.
这是我的代码:
int main(int argc, char* argv[])
{
GLenum GlewInitResult, res;
InitWindow(argc, argv);
res = glGetError(); // res = 0
glewExperimental = GL_TRUE;
GlewInitResult = glewInit();
fprintf(stdout, "ERROR: %s\n", glewGetErrorString(GlewInitResult)); // "No error"
res = glGetError(); // res = 1280
glutMainLoop();
exit(EXIT_SUCCESS);
}
void InitWindow(int argc, char* argv[])
{
glutInit(&argc, argv);
glutInitContextVersion(4, 0);
glutInitContextFlags(GLUT_FORWARD_COMPATIBLE);
glutInitContextProfile(GLUT_CORE_PROFILE);
glutSetOption(GLUT_ACTION_ON_WINDOW_CLOSE,
GLUT_ACTION_GLUTMAINLOOP_RETURNS);
glutInitWindowPosition(0, 0);
glutInitWindowSize(CurrentWidth, CurrentHeight);
glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
WindowHandle = glutCreateWindow(WINDOW_TITLE);
GLenum errorCheckValue = glGetError();
if (WindowHandle …Run Code Online (Sandbox Code Playgroud) 假设我有一个使用HttpClient的服务,
@Injectable()
export class MyService {
constructor(protected httpClient: HttpClient) { .. }
}
Run Code Online (Sandbox Code Playgroud)
然后是一个使用此服务的组件.
@Component({
selector: 'my-component'
})
export class SendSmsComponent {
constructor(private MyService) { .. }
}
Run Code Online (Sandbox Code Playgroud)
如何在模拟HttpClient而不是整个服务的同时测试这个组件?
TestBed.configureTestingModule({
declarations: [MyComponent],
providers: [
{ provide: MyService, useClass: MyService } // ?
]
}).compileComponents();
httpMock = TestBed.get(HttpTestingController); // ?
Run Code Online (Sandbox Code Playgroud) 我有一个绑定到ObservableCollection的ListView.数据从Internet加载,然后添加到集合中.下载需要几秒钟,我想指示用户数据正在加载.
我创建了一个指示活动的UserControl.我将它放在ControlTemplate中.
<ControlTemplate x:Key="ListViewControlTemplate1" TargetType="{x:Type ListView}">
<Grid>
<local:ActivityIndicatorControl
HorizontalAlignment="Center"
Height="Auto"
Margin="0"
VerticalAlignment="Center"/>
</Grid>
</ControlTemplate>
Run Code Online (Sandbox Code Playgroud)
我想将Visibility绑定ActivityIndicatorControl到一个属性,让我们说bool IsLoading并相应地将它设置为Visible/Collapsed.
谢谢!
我尝试这样做时出错:
path p = "somepath";
FILE* file = fopen(p.c_str(), "r");
Run Code Online (Sandbox Code Playgroud)
我明白了:
"const boost :: filesystem :: path :: value_type*"类型的参数与"const char*"类型的参数不兼容
谁能告诉我我做错了什么?谢谢
我正在尝试通过实现 MatFormFieldControl、ControlValueAccessor 和 Validator 接口来创建自定义表单控件。
但是,当我提供NG_VALUE_ACCESSOR或NG_VALIDATORS...
@Component({
selector: 'fe-phone-number-input',
templateUrl: './phone-number-input.component.html',
styleUrls: ['./phone-number-input.component.scss'],
providers: [
{
provide: MatFormFieldControl,
useExisting: forwardRef(() => PhoneNumberInputComponent)
},
{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => PhoneNumberInputComponent),
multi: true,
},
{
provide: NG_VALIDATORS,
useExisting: forwardRef(() => PhoneNumberInputComponent),
multi: true
}
]
})
export class PhoneNumberInputComponent implements MatFormFieldControl<string>,
ControlValueAccessor, Validator, OnDestroy {
...
}
Run Code Online (Sandbox Code Playgroud)
创建循环依赖:
未捕获的错误:模板解析错误:无法实例化循环依赖!控件
这有效:
@Component({
selector: 'fe-phone-number-input',
templateUrl: './phone-number-input.component.html',
styleUrls: ['./phone-number-input.component.scss'],
providers: [
{
provide: MatFormFieldControl,
useExisting: forwardRef(() => PhoneNumberInputComponent)
} …Run Code Online (Sandbox Code Playgroud) typescript angular-material angular-components angular angular5
我是多线程和WPF的新手.
我有一个ObservableCollection<RSSFeed>,在app启动项目从UI线程添加到此集合.RSSFeed的属性绑定到WPF ListView.后来,我想异步更新每个RSSFeed.所以我正在考虑实现类似的东西RSSFeed.FetchAsync()并在其更新的属性上提升PropertyChanged.
我知道ObservableCollection不支持来自UI线程以外的线程的更新,它会抛出NotSupportedException.但是因为我没有操纵ObservableCollection本身而是更新其项目的属性,我可以期待这个工作并看到ListView项目更新吗?或者由于PropertyChanged它会抛出异常吗?
编辑:代码
RSSFeed.cs
public class RSSFeed
{
public String Title { get; set; }
public String Summary { get; set; }
public String Uri { get; set; }
public String Encoding { get; set; }
public List<FeedItem> Posts { get; set; }
public bool FetchedSuccessfully { get; protected set; }
public RSSFeed()
{
Posts = new List<FeedItem>();
}
public RSSFeed(String uri)
{
Posts = new List<FeedItem>();
Uri = uri;
Fetch();
}
public …Run Code Online (Sandbox Code Playgroud) 这是我的第一个问题:)
我知道我不应该检查对象类型,而是使用dynamic_cast,但这不会解决我的问题.
我有一个名为Extension和接口的类,名为IExtendable和IInitializable,IUpdatable,ILoadable,IDrawable(后四个基本相同).如果Extension实现IExtendable接口,它可以使用不同的Extension对象扩展自身.
问题是我想允许实现IExtendable的Extension只扩展,扩展实现与原始扩展相同的接口.
你可能不会那么糟糕,所以我试着用代码来解释它:
class IExtendable
{
public:
IExtendable(void);
void AddExtension(Extension*);
void RemoveExtensionByID(unsigned int);
vector<Extension*>* GetExtensionPtr(){return &extensions;};
private:
vector<Extension*> extensions;
};
class IUpdatable
{
public:
IUpdatable(void);
~IUpdatable(void);
virtual void Update();
};
class Extension
{
public:
Extension(void);
virtual ~Extension(void);
void Enable(){enabled=true;};
void Disable(){enabled=false;};
unsigned int GetIndex(){return ID;};
private:
bool enabled;
unsigned int ID;
static unsigned int _indexID;
};
Run Code Online (Sandbox Code Playgroud)
现在想象我创建扩展的情况如下:
class MyExtension : public Extension, public IExtendable, public IUpdatable, public IDrawable
{
public:
MyExtension(void);
virtual ~MyExtension(void);
virtual void AddExtension(Extension*);
virtual void …Run Code Online (Sandbox Code Playgroud) 我正在通过CKEDITOR.instances [editorId] .insertHtml()(在角应用程序内)添加自定义小部件,我需要对小部件选择做出反应,可能会取消选择.
我看到该窗口小部件会触发诸如select,deselect,focus和blur等事件,但我无法找到如何在每个窗口小部件上设置监听器.
这可以在插件的init函数内完成吗?
谢谢
angular ×2
c# ×2
c++ ×2
wpf ×2
android ×1
angular5 ×1
angularjs ×1
asynchronous ×1
binding ×1
ckeditor ×1
drawerlayout ×1
dynamic-cast ×1
fopen ×1
freeglut ×1
glew ×1
interface ×1
javascript ×1
opengl ×1
polymorphism ×1
std ×1
types ×1
typescript ×1
unit-testing ×1
virtual ×1
windows ×1
xaml ×1